首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在api < 20 (Android)上获取圆形图像视图

在Android平台上,如果要在API级别低于20的设备上获取圆形图像视图,可以使用以下步骤:

  1. 首先,确保你的项目中已经导入了支持圆形图像视图的库。你可以使用第三方库Picasso或Glide来加载和处理图像。这些库提供了简单的方法来加载图像,并且可以通过转换来实现圆形图像视图的效果。
  2. 在布局文件中,使用ImageView来显示图像。为了实现圆形效果,你可以将ImageView的形状设置为圆形。在API级别低于21的设备上,可以使用自定义的圆形ImageView类来实现这一点。以下是一个示例:
代码语言:java
复制
public class CircleImageView extends ImageView {

    public CircleImageView(Context context) {
        super(context);
    }

    public CircleImageView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public CircleImageView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
    }

    @Override
    protected void onDraw(Canvas canvas) {
        Drawable drawable = getDrawable();

        if (drawable == null) {
            return;
        }

        if (getWidth() == 0 || getHeight() == 0) {
            return;
        }

        Bitmap bitmap = ((BitmapDrawable) drawable).getBitmap();
        Bitmap circularBitmap = getCircularBitmap(bitmap);
        canvas.drawBitmap(circularBitmap, 0, 0, null);
    }

    private Bitmap getCircularBitmap(Bitmap bitmap) {
        Bitmap output = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), Bitmap.Config.ARGB_8888);
        Canvas canvas = new Canvas(output);

        final Paint paint = new Paint();
        final Rect rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight());

        paint.setAntiAlias(true);
        canvas.drawARGB(0, 0, 0, 0);
        canvas.drawCircle(bitmap.getWidth() / 2, bitmap.getHeight() / 2, bitmap.getWidth() / 2, paint);
        paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN));
        canvas.drawBitmap(bitmap, rect, rect, paint);

        return output;
    }
}
  1. 在代码中,使用Picasso或Glide库加载图像,并将图像设置给CircleImageView。以下是一个示例:
代码语言:java
复制
CircleImageView circleImageView = findViewById(R.id.circle_image_view);
String imageUrl = "https://example.com/image.jpg";

Picasso.get().load(imageUrl).into(circleImageView);

这样,你就可以在API级别低于20的Android设备上获取圆形图像视图了。

请注意,这只是一种实现圆形图像视图的方法之一。在实际开发中,你可以根据自己的需求和偏好选择其他方法或库来实现相同的效果。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Android 9.0 强势来袭,带来了哪些新特性?

ImageDecoder还可以为图像添加自定义和复杂的效果,圆角或圆形蒙版。setPostProcessor() 与PostProcessor 类的实例一起 使用 以达到想要的任何绘图效果。...例如,您可以使用该 setPostProcessor() 方法修改图像的外观,例如应用圆形蒙版或圆角。...HDR VP9视频,HEIF图像压缩和媒体API Android 9增加了对高动态范围(HDR)VP9配置文件2的内置支持,因此我们现在可以通过YouTube,Play电影和支持HDR的设备的其他来源播放用户提供支持...Android 9为MediaDRM类添加了方法, 以获取指标,HDCP级别,安全级别和会话数,并添加对安全级别和安全停止的更多控制。有关详细信息,请参阅API Diff报告。...组导航和输出 屏幕阅读器传统使用该 android:focusable属性来确定何时应该ViewGroup将View对象或对象集合 作为单个单元读取 。这样,用户就可以理解视图在逻辑彼此相关。

3.3K20

Android开发笔记(九十九)圆形转盘

圆形转盘的实现思想 圆形转盘的运用场景常见的有:抽奖转盘、圆形菜单列表、热点客户端环状列表等等。对于圆形转盘的编码实现,主要难点除了手势的触摸控制之外,就在于旋转角度的计算了。...,此时旋转的圆心是文本或图像的中心点; 三、刷新整个转盘的视图,对于继承自View的视图,直接调用postInvalidate方法即可。...开发笔记(十三)视图绘制的几个方法》,下面列出的是用到Path和Matrix的方法: clipPath : 根据指定Path路径裁剪画布 drawPath : 在指定Path路径绘画 drawTextOnPath...: 在指定Path路径写文本 drawBitmap : 根据指定矩阵画图 Bitmap.createBitmap : 根据指定矩阵创建图像 代码示例 限于篇幅,这里就不贴出圆形转盘的源码了...点击下载本文用到的圆形转盘的工程代码 点此查看Android开发笔记的完整目录

1.9K30

Android开发笔记(一百七十一)使用Glide加载网络图片

由于Android本身就是谷歌开发的,Glide与Android系出同门,因此Glide成为事实的官方推荐图片缓存框架。...3、准备显示网络图片的图像视图实例,参数类型为ImageView。...虽然Glide支持上述四种显示类型,但它无法设定FIT_XY对应的平铺方式,若想让图片平铺至充满整个图像视图,还得调用图像视图的setScaleType方法,将拉伸类型设置为ImageView.ScaleType.FIT_XY...在得到网络图片之前,会先在图像视图展现占位图。 error:设置发生错误的提示图。网络图片获取失败之时,会在图像视图展现提示图。 override:设置图片的尺寸。...centerInside:保持图片的宽高比例,在图像视图内部居中显示,图片只能拉小不能拉大,对应拉伸类型CENTER_INSIDE。 circleCrop:展示圆形剪裁后的图片。

3.6K20

何在 SwiftUI 中创建悬浮操作按钮

前言悬浮操作按钮(Floating Action Button, FAB)是一种在 Android 和 Material Design 中使用的 UI 元素。它用于触发特定屏幕的主要操作。...以下是一个简单的列表视图,嵌套在导航视图和选项卡视图中,列表中显示了 item 加索引内容。...将一个按钮放在内容视图上。这将在列表视图上添加一个加号图像按钮。示例运行截图如下:悬浮按钮位于屏幕的右下角接着,是需要实现需求中的第二步,使按钮与内容视图对齐到右下角。...示例运行截图如下:使悬浮按钮呈现圆形接着,是需要实现需求中的第三步,使悬浮按钮具有圆角形状,并在中心具有一个图标。目前的情况位置是正确的,但外观还不符合要求。...总结在本文中,我们学习了如何在 SwiftUI 中创建一个悬浮操作按钮,它是 Android 和 Material Design 中常用的 UI 元素。通过逐步实现悬浮按钮的各个特性来完成这个过程。

12232

Google的Android图形与视频处理神器

关键特性和组件 1)TextureView和SurfaceView的使用 Grafika通过一系列示例,展示了如何在Android应用中有效使用TextureView和SurfaceView。...这些视图组件是图形渲染和视频显示的核心,Grafika提供了它们的最佳实践。 2)OpenGL集成 作为跨平台的2D和3D图形API,OpenGL ES在移动设备扮演着重要角色。...4)Grafika配备了强大的开发和调试工具,GL工具、图像和视频分析器,这些工具对开发者来说非常实用。 Grafika项目在GitHub开源,接受全球开发者的贡献。...随着Android平台的不断更新,Grafika也在持续进化。我们可以期待它将支持更多的新特性,Vulkan渲染、更高效的视频编解码技术等。...对于初学者来说,Grafika提供了完整的入门指南,包括如何获取源码、构建项目、运行示例等。

8710

Android编程实现扭曲图像的绘制功能示例

本文实例讲述了Android编程实现扭曲图像的绘制功能。...分享给大家供大家参考,具体如下: 为了实现动画效果,使用drawBitmapMess方法对图像进行扭曲,使用定时器以100毫秒的频率按圆形轨迹扭曲图像。 扭曲的关键是生成verts数组。...关键部分的代码如下: 定义基本变量:MyView是用于显示扭曲的图像的自定义view,angle是圆形轨迹的当前角度: private static Bitmap bitmap; private MyView...更多关于Android相关内容感兴趣的读者可查看本站专题:《Android图形与图像处理技巧总结》、《Android开发入门与进阶教程》、《Android调试技巧与常见问题解决方法汇总》、《Android...基本组件用法总结》、《Android视图View技巧总结》、《Android布局layout技巧总结》及《Android控件用法总结》 希望本文所述对大家Android程序设计有所帮助。

60620

带你玩转自定义view系列

image 系统提供了 getLocationOnScreen(intLocation[]) 这样的方法来获取 Android 坐标中点的位置,即该视图左上角在 Android 坐标系中的坐标。...image 在触控事件中,通过 getX() 和 getY() 所获得的坐标就是视图坐标中的坐标。 在 Android 中,系统提供了非常多的方法来获取坐标值、相对距离等。...获取点击事件距离控件左边的距离,即视图坐标 **getY(): **获取点击事件距离控件东边的距离,即视图坐标 **getRawX(): **获取点击事件距离整个屏幕左边的距离,即绝对坐标 **getRawY...(): **获取点击事件距离整个屏幕顶边的距离,即绝对坐标 以上就是简单的 Android 坐标和 View 的视图坐标。...:着色器,用来给图像着色,此类是基类, Shader的API (https://developer.android.com/reference/android/graphics/Shader)。

1.6K20

Paint基本使用

设置后会平滑一些; final boolean isDither() 9.void setDither(boolean dither) 获取与设定是否使用图像抖动处理,会使绘制出来的图片颜色更加平滑和饱满...、图像更加清晰。...10.setPathEffect(PathEffect effect); * 设置绘制路径的效果,点画线等 (1)、CornerPathEffect——圆形拐角效果 paint.setPathEffect...比如,我们定义new float[] {20,10};那这个虚线段就是由两段线段组成的,第一个可见的线段长为20,每二个线段不可见,长度为10; phase: 开始绘制的偏移值 ..... 11.setXfermode...dy,int color); 在图形下面设置阴影层,产生阴影效果,radius为阴影的角度,dx和dy为阴影在x轴和y轴的距离,color为阴影的颜色 1.2 负责设置获取文字相关的 float

1K20

Android开发笔记(序)写在前面的目录

Android开发笔记(三十五)页面布局视图 基本视图 View、ViewGroup Android开发笔记(三十六)展示类控件 文本框、图像视图 TextView、EditText、ImageView...3 MaterialRippleLayout Android开发笔记(八十二)系统软件兼容 圆形图像 CircleDrawable Android开发笔记(九十五)自定义Drawable 椭圆形图像 OvalDrawable...九十八)往图片添加部件 可旋转文本 RotateTextView Android开发笔记(九十九)圆形转盘 可旋转图像 RotateImageView Android开发笔记(九十九)圆形转盘 抽奖转盘...LuckyPanView Android开发笔记(九十九)圆形转盘 圆形菜单 CircleMenuLayout Android开发笔记(九十九)圆形转盘 更多动态视图 MoreNewsView Android...Android开发笔记(一百三十一)水波图形与水波动画 协调的图像视图 CoordinatorImageView Android开发笔记(一百三十七)自定义行为Behavior 图像视图行为 ImageViewBehavior

2.9K40

Android开发笔记(一百五十三)OpenGL绘制三维图形的流程

从这篇文章开始,接下来会连载一系列的OpenGL相关博文,好好探讨如何在Android中进行OpenGL开发。...看起来OpenGL是很高大的样子,其实Android系统早已集成了相关的API,只要开发者按照函数要求依次调用,就能一步一步在手机屏幕上画出各式各样的三维物体了。...不过对于初次接触OpenGL的开发者来说,三维绘图的概念可能过于抽象,所以为了方便读者理解,下面就以Android的二维图形绘制为参考,亦步亦趋地逐步消化OpenGL的相关知识点。...从前面的学习可以得知,每个Android界面上的控件,其实都是在某个视图上绘制规定的文字(TextView),或者绘制指定的图像ImageView)。...正如前面介绍的Android自定义控件那样,有了视图View、画布Canvas、画笔Paint,方能绘制炫彩多姿的各种控件。

1.8K20

RenderDemo(1):用 OpenGL 画一个三角形丨音视频工程示例

关注一下成本不高,错过干货损失不小 ↓↓↓ ---- 渲染是音视频技术栈相关的一个非常重要的方向,视频图像在设备的展示、各种流行的视频特效都离不开渲染技术的支持。...在 RenderDemo 这个工程示例系列,我们将为大家展示一些渲染相关的 Demo,来向大家介绍如何在 iOS/Android 平台上手一些渲染相关的开发。...如果我们了解了 OpenGL ES 就会知道,虽然它定义了一套移动设备的图像渲染 API,但是并没有定义窗口系统。...在 Android 的实现类是 EGLDisplay。...在 Android 的实现类是 EGLSurface。 Context 存储 OpenGL ES 绘图的一些状态信息。在 Android 的实现类是 EGLContext。

1.2K31

Android 9 Pie 现已面向全球正式发布!

我们将在接下来几周内公布具体操作细节,帮助开发者了解如何在应用内处理一个或多个用户意图。...该功能可以灵活运用在所有附加在窗口的视图上,个性化小部件和定制文本呈现均是不错的应用场景。而且,该放大器工具还可以提供任何视图或界面的放大版本,而不仅仅是文本。 ?...了解全部隐私变更 感官新体验: 摄像和影音的全面升级 多摄像头 API 以及其它改进 从 Android 9 开始,您可以在支持多摄像头 API 的设备通过两个或更多实体摄像头同时访问视频流;在配有双前置或双后置摄像头的设备...现在,您可以在支持 HDR 的设备,把启用 HDR 功能的视频内容分享给您的用户。 另外,我们还在添加了对 HEIF (heic) 图像编码的平台支持。...在提供硬件支持的 Android 9 设备,在启动位置服务并勾选 “允许获取地理位置信息” 选项后,应用就可以使用 RTT API 测量与附近 Wi-Fi 接入点 (AP) 的距离。

9.1K10

Android实现类似3D Touch菜单功能

思路 想要尽力模仿这种菜单,经过分析,我觉得主要实现以下几个点: 1)菜单的出现方式,在ios,方式是用户用手指用力按下,然而在Android,受限于硬件,我们无法捕捉用力按压这种动作,所以,我改用另一种比较次的方式...RenderScript方案 RenderScript是由Android3.0引入,用来在Android编写高性能代码的一种语言。...优点:使用方便,Android官方API自带,而且性能处理效果极好,缺点:需要API17以上。...使用非常简单,我们只需要获取RenderScript的实例,传入模糊图像需要的参数 @TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR1) public Bitmap...那么我们如何在手指不抬起的情况下,让刚刚出现模糊层视图来接管接下来的手指滑动,也就是ACTION_MOVE和ACTION_UP事件呢?

73420

浅谈Android开发者2017年最值得关注的25个实用库

根据文件: “Store是简化在应用程序中获取,解析,存储和检索数据的类。 一个Store类似于Repository模式,同时暴露了一个遵循单向数据流的RxJava构建的Reactive API。...您可以在下面的gif检查它的工作原理: ?...根据其README: “CameraFragment直接预览相机视图,并提供了一个简单的API来捕获或管理设备。 您可以使用CameraFragment设置自己的布局并控制相机。“ ?...Bridge “Bridge是Android的简单而强大的HTTP网络库。 它具有流畅的可链接API,由Java / Android的URLConnection类提供支持,以实现最大的兼容性和速度。...greenrobot所称, “性能是我们创建ObjectBox的第一个原因。 之前,我们创建了greenDAO,这是Android和SQLite中最快的对象/关系映射器(ORM)。

1K21

运维锅总详解如何设计出一个好的API

page=1&size=20 来分页获取用户列表。 8. 可扩展性 灵活的设计:设计 API 时考虑未来的扩展需求。使用通用的字段和参数,以便将来添加新功能。...例子:/api/v1/pods 用于获取 Pod 列表,/api/v1/services 用于获取 Service 列表。...资源分离:Android API 将应用资源(布局、字符串、图像)与代码分离,使用 res 文件夹组织资源,提高代码的可维护性。...自动布局 例子:使用 NSLayoutConstraint 设置视图的约束,确保应用在不同设备和屏幕尺寸的一致布局。...设备和市场多样性: Android 支持多种设备和屏幕尺寸,具有广泛的市场覆盖。 例子:Android 设备从低端到高端各类设备都有,应用需要在各种设备兼容。

6210

一文彻底搞清楚 Material Design

为了配合 material desig, android 提供了新的主题、新的配合主题的组件、和自定义阴影和新动画 api 来看看 Android 为了配合 Material Design 都增加了哪些新的控件...为了满足 Material Design 的层次要求,android 5.0 后增加了 Z 轴,用来表示控件的海拔,海拔的效果具体体现在阴影。...我们可以给我们的视图创建自定义状态列表动画,添加到视图上。...轮廓 默认情况下,所有的view都是矩形的,虽然可以给view设置背景圆形的图片,即可以在界面显示出圆形的内容,但是view的大小实际依然是矩形,并且设置的图片实际也是矩形的,只是圆形以外的区域是透明色...按照轮廓裁剪,能改变 View 的形状,圆形头像: 先设置轮廓 在设置根据轮廓裁剪 View,目前只支持对矩形、圆形、圆角矩形的裁剪 tvClip.setClipToOutline(true)// 设置对

2.2K10
领券