老套路看图:

实现方法非常简单,使用ClipPath切割就可以了:

完整代码如下:dpUtils工具类就不发了,自己写下吧

import android.annotation.SuppressLint;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Path;
import android.support.annotation.Nullable;
import android.util.AttributeSet;
import android.widget.ImageView;import com.gfan.xiayiye5.utils.DpUtils;/*** @author xiayiye5* 2020年11月14日15:21:42* 自定义圆角图片*/
@SuppressLint("AppCompatCustomView")
public class RadiusImageView extends ImageView {/*** 圆角大小*/private int radiusSize = DpUtils.dip2px(getContext(), 10);public RadiusImageView(Context context) {super(context, null);}public RadiusImageView(Context context, @Nullable AttributeSet attrs) {super(context, attrs, 0);}public RadiusImageView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {super(context, attrs, defStyleAttr);init();}private void init() {}/*** 设置圆角大小,设置后需要再次刷新下当前view,使用invalidate()或者postInvalidate()刷新都可以的** @param size dp值*/public void setRadiusSize(int size) {radiusSize = DpUtils.dip2px(getContext(), size);invalidate();
//        postInvalidate();}@Overrideprotected void onDraw(Canvas canvas) {if (getWidth() > radiusSize && getHeight() > radiusSize) {@SuppressLint("DrawAllocation")Path path = new Path();path.moveTo(radiusSize, 0);path.lineTo(getWidth() - radiusSize, 0);path.quadTo(getWidth(), 0, getWidth(), radiusSize);path.lineTo(getWidth(), getHeight() - radiusSize);path.quadTo(getWidth(), getHeight(), getWidth() - radiusSize, getHeight());path.lineTo(radiusSize, getHeight());path.quadTo(0, getHeight(), 0, getHeight() - radiusSize);path.lineTo(0, radiusSize);path.quadTo(0, 0, radiusSize, 0);canvas.clipPath(path);}super.onDraw(canvas);}
}

如何使用呢?

在布局中直接使用该控件就可以了:

<!-- 下面的com.gfan.xiayiye5.view.RadiusImageView换成自己路径就好了 --><com.gfan.xiayiye5.view.RadiusImageViewandroid:id="@+id/ivLastLoginId"android:layout_width="50dp"android:layout_height="50dp"android:layout_below="@+id/tvLastLoginId" />

再次非常感谢原博主:博主链接

Android开发之自定义ImageView圆角图片的方法相关推荐

  1. Android 两种制作圆形/圆角图片的方法

    前言: 目前网上有很多圆角图片的实例,Github上也有一些成熟的项目.之前做项目,为了稳定高效都是选用Github上的项目直接用.但这种结束也是Android开发必备技能 ,所以今天就来简单研究一下 ...

  2. Android开发之修改ImageView(图片)的颜色

    如何修改图片的颜色呢? 不是修改imageview的背景色,而是修改图片的颜色 方法一:xml中修改: 修改前: 修改后: 简单一行代码搞定,只需要在imageview中添加如下: android:t ...

  3. 【Android开发】自定义圆角button样式

    [Android开发]自定义圆角button样式 结果图 步骤 在res/drawable中新建一个drawable文件,自定义命名为btu.xml; 在btu.xml中设置圆角大小和填充颜色,代码如 ...

  4. Android 圆形/圆角图片的方法

    Android 圆形/圆角图片的方法 眼下网上有非常多圆角图片的实例,Github上也有一些成熟的项目.之前做项目,为了稳定高效都是选用Github上的项目直接用.但这样的结束也是Android开发必 ...

  5. Android 系统(167)----Glide加载圆角图片的方法

    Glide加载圆角图片的方法 现在在市面上很多App的UI设计都会出现圆角图片的显示.Glide本身也提供了圆角图片的加载方式.但是我们在开发中有可能遇到只要顶部展示圆角,或者某一个角是圆角.这样的需 ...

  6. android自定义横竖双向滚动,Android开发实现自定义水平滚动的容器示例

    Android开发实现自定义水平滚动的容器示例 发布时间:2020-09-12 01:25:56 来源:脚本之家 阅读:71 作者:CharlinGod 本文实例讲述了Android开发实现自定义水平 ...

  7. Android开发 调用系统相机相册图片功能,解决小米手机拍照或者图片横竖相反问题,及小米手机相册图片路径问题

    Android开发 调用系统相机相册图片功能,解决小米手机拍照或者图片横竖相反问题,及小米手机相册图片路径问题 1.调用相机,兼容7.0 AndroidManifest配置 <providera ...

  8. android圆角glide,Glide加载圆角图片的方法

    原标题:Glide加载圆角图片的方法 现在在市面上很多App的UI设计都会出现圆角图片的显示.Glide本身也提供了圆角图片的加载方式.但是我们在开发中有可能遇到只要顶部展示圆角,或者某一个角是圆角. ...

  9. android实现新闻内容显示功能,Android开发实现自定义新闻加载页面功能实例

    本文实例讲述了Android开发实现自定义新闻加载页面功能.分享给大家供大家参考,具体如下: 一.概述: 1.效果演示: 2.说明:在新闻页面刚加载的时候,一般会出现五种状态 未知状态(STATE_U ...

最新文章

  1. 巧用组策略关闭危险端口
  2. css删除线_前端删除文字贯穿线的方法有哪些
  3. 我所认识的数据产品经理(文末有彩蛋)
  4. SAP UI5 Mock server,为什么运行时无法返回 JSON 类型的测试数据?
  5. [机器学习] 半监督学习---伪标签Pseudo-Label
  6. 第9课 - 函数重载分析(下)
  7. 0407 背景相关的作业
  8. 【kafka】Failed to allocate.memory within the configed max blocking time
  9. java B2B2C 源码 多级分销Springcloud多租户电子商城系统-Spring Cloud eureka
  10. 关于GetTickCount函数的用法
  11. tbslog乱码转换_word 编码 转换器 在线转换器
  12. win7装matlab教程,win7系统怎么安装matlab软件(图文教程)
  13. 【缺陷检测】基于matlab GUI印刷电路板自动缺陷检测【含Matlab源码 1912期】
  14. h5(网页) 调用相机拍照和相册,实现图片上传功能
  15. 利用hfs工具上传文件的操作教程
  16. Unix C语言编写基于IO多路复用的小型并发服务器
  17. 使用俄罗斯老大哥的Wrap进行缩裹式半自动重拓扑
  18. getter mysql_为什么使用Getter和Setter?Getter和Setter有什么区别?
  19. miix4 装linux,联想miix4笔记本u盘安装win7系统步骤
  20. 百度地图离线化(API v=1.3)

热门文章

  1. 老司机们都是怎么学习STM32的?
  2. 晋职称计算机过几,晋职称怎样考计算机 昨日记者采访市人事局有关负责人
  3. linux是数据库软件么,什么是适用于Linux的良好数据库ERD工具?
  4. 二元偏导数存在的条件_多元函数 可导、可微、连续、一阶偏导数连续 之间关系的总结...
  5. python cnn_Python · CNN(一)· 层结构
  6. python小括号表示什么数据类型_Python3中小括号()、中括号[]、花括号{}的区别详解...
  7. vuetify electron (开发环境及打包)
  8. 在用户离开页面(刷新、后退、关闭等)时提示信息
  9. Appium1.9 之 Chromedriver安装方式
  10. 批量改变文件夹和子文件夹中图片格式的两种方法