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

如何在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设备上获取圆形图像视图了。

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

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

相关·内容

安卓开发-车机应用实现仪表盘高级UI

引言在车机应用开发中,本文介绍如何在安卓平台上实现一个自定义的仪表盘视图,包括设计、实现和集成协议数据(不提供code)。...开发环境介绍本项目使用Android Studio作为开发环境,采用Java语言进行编码。仪表盘视图通过自定义View实现,图形处理和动画效果。...绘制逻辑:onDraw方法在画布上绘制背景和指针。指针的旋转角度根据当前速度值动态计算。动态更新:setCurrentValue方法用于更新指针的当前值,触发视图重绘。...= scaleBitmap(mBackGround, scale); mNeedle = scaleBitmap(mNeedle, scale); } //TODO 实现控制圆形放大缩小的功能...通过地址访问和下载GitHub - jienian/MiniPanApp: 1.编写仪表盘和速度盘2.根据车速显示对应的数字图像结语自定义仪表盘视图的开发增强了车机应用的视觉效果,通过本文的介绍,开发者可以掌握在安卓平台上实现自定义高级

32620

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提供了完整的入门指南,包括如何获取源码、构建项目、运行示例等。

15910
  • 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

    1.1K20

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

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

    2K20

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

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

    8310

    RenderDemo(3):用 OpenGL 实现高斯模糊丨音视频工程示例

    (iOS+Android) 高斯模糊是一种柔和模糊的图像效果,模糊后的图像可以被更复杂的算法用来产生例如炫光、景深、热浪或者毛玻璃的效果。...数据平滑 我们将这个想法应用到图像上,对图像中的每一个像素点,取周围像素的平均值,自然而然就会让这幅图产生模糊效果。...当我们取周围点的时候,所参考的范围呈现一个圆形,圆形半径越大,模糊效果就会越强烈。 高斯模糊效果图 如果使用简单平均,显然不是很合理,因为图像都是连续的,越靠近的点关系越密切,越远离的点关系越疏远。...二维高斯函数的图像表示 高斯函数的一维形式是: 高斯函数一维函数方程 高斯函数的二维形式是: 高斯函数二维函数方程 假如目前有一张宽高为 1024x1024 的图像,我们使用上述所说的方法对这个图像上的每个点计算二维正态分布的加权...3、Android Demo Android 实现高斯模糊的 Demo 我们是在 OpenGL 渲染视频 Demo 的基础上在相机返回的视频帧被渲染前增加了高斯模糊的处理。

    1.2K10

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

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

    4K20

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

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

    2K30

    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.5K20

    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

    带你玩转自定义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

    一文彻底搞清楚 Material Design

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

    3.4K10

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

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

    9.1K10

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

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

    19132

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

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

    1.3K31
    领券