返回顶部
首页 > 资讯 > 移动开发 >20行Android代码写一个CircleImageView
  • 598
分享到

20行Android代码写一个CircleImageView

Android 2022-06-06 07:06:29 598人浏览 独家记忆
摘要

一提到弄一个圆形的头像,很多人马上会想到用CircleIamgeView,但其实自己写一个也并不难自己写的部分也就20行代码,主要是用到PoterDuffXfermode来设置

一提到弄一个圆形的头像,很多人马上会想到用CircleIamgeView,但其实自己写一个也并不难自己写的部分也就20行代码,主要是用到PoterDuffXfermode来设置两个图层交集区域的显示方式

首先写一个继承自ImageView的控件

public class CircleImageView extends ImageView

 然后创建构造方法


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

之后重写onDraw方法


@Override
 protected void onDraw(canvas canvas) {
  //获得图片的宽度
  int width=getWidth();
  //获得图片的高度
  int height=getHeight();
  //短的二分之一作为半径
  int radius=height>width?width/2:height/2;
  //重新定义的一个画布,这一步很关键
  Paint mPaint = new Paint();
  //抗锯齿
  mPaint.setAntiAlias(true);
  Bitmap bitmap = Bitmap.createBitmap(width,height,
    Bitmap.Config.ARGB_8888);
  Canvas bitmapCanvas = new Canvas(bitmap);
  super.onDraw(bitmapCanvas);
  //圆形的框
  Bitmap cB = Bitmap.createBitmap(width, height,
    Bitmap.Config.ARGB_8888);
  Canvas cCanv = new Canvas(cB);
  //在控件中间画一个
  cCanv.drawCircle(width/ 2, height/ 2, radius,
    mPaint);
  canvas.drawBitmap(bitmap, 0.0f, 0.0f, mPaint);
  //dst是后画的图形
  mPaint.setXfermode(new PorterDuffXfermode(
    PorterDuff.Mode.DST_IN));
  //一定要用之前的画布,不然会出现边角是黑色
  bitmapCanvas.drawBitmap(cB, 0.0f, 0.0f, mPaint);
  //给图形加边框
  Paint paint =new Paint();
  paint.setAntiAlias(true);
  paint.setStyle(Paint.Style.STROKE);
  paint.setStrokeWidth(5);
  paint.setColor(Color.BLACK);
  canvas.drawCircle(width/ 2, height/ 2, radius,
    paint);
 }

一个简单的CircleImageView就做成了,你们还可以把边框弄成一个属性还有配置相应的方法,让使用者更加方便的使用

它的用法也是和ImageView一模一样的


<com.example.jkgeekjk.roadtodevelop3.CircleImageView
  Android:layout_width="match_parent"
  android:src="@drawable/avastar"
  android:layout_height="match_parent" />

效果图:

您可能感兴趣的文章:Android使用CircleImageView实现圆形头像的方法Android中使用CircleImageView和Cardview制作圆形头像的方法Android自定义控件仿QQ编辑和选取圆形头像利用Android中BitmapShader制作自带边框的圆形头像Android应用中绘制圆形头像的方法解析Android实现本地上传图片并设置为圆形头像Android根据电话号码获得联系人头像实例代码Android手机拍照或选取图库图片作为头像Android实现从本地图库/相机拍照后裁剪图片并设置头像Android利用CircleImageView实现圆形头像的方法


--结束END--

本文标题: 20行Android代码写一个CircleImageView

本文链接: https://lsjlt.com/news/24432.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 20行Android代码写一个CircleImageView
    一提到弄一个圆形的头像,很多人马上会想到用CircleIamgeView,但其实自己写一个也并不难自己写的部分也就20行代码,主要是用到PoterDuffXfermode来设置...
    99+
    2022-06-06
    Android
  • 分享20个JavaScript 单行代码
    目录1.获取浏览器Cookie的值2.将RGB转换为十六进制3.复制到剪贴板4.检查日期是否有效5.查找一年中的某一天6.大写字符串7.查找两个日期之间的天数8.清除所有Cookie...
    99+
    2024-04-02
  • [python]写一个统计代码行数的co
     某一天过去SY那儿,突发奇想说要写一个统计代码行数的小程序。说干就干,约定了一个时间——周六,来把这个想法给实现了。当然这个项目人家做过的也未必,google一下,果然有非常优秀的win下面的代码统计工具sourceCounter。当然我...
    99+
    2023-01-31
    行数 代码 python
  • 利用Java代码写一个并行调用模板
    目录前言:1. 一个串行调用的例子2. CompletionService实现并行调用3. 抽取通用的并行调用方法4. 代码思考以及设计模式应用5. 思考总结前言: 本文主要介绍内容...
    99+
    2024-04-02
  • 女神相册密码忘记了 我只用Python写了20行代码
    视频地址 我用20行代码,帮女神破解相册密码 一、事情是这样的 今早上班,公司女神小姐姐说,她去年去三亚旅游的照片打不开了 好奇问了一下才知道。 原来是,她把照片压缩了,而且还加了...
    99+
    2024-04-02
  • 详解android写一个选择图片的示例代码
    可以达到的效果 第一个图片的位置放照相机,点击打开照相机 其余的是显示全部存储的图片,点击一次是查看大图,长按则是每张图片出现一个checkBox,可以进行选择 下面是...
    99+
    2022-06-06
    选择 示例 图片 Android
  • 80行代码写一个Webpack插件并发布到npm
    1. 前言 最近在学习 Webpack 相关的原理,以前只知道 Webpack 的配置方法,但并不知道其内部流程,经过一轮的学习,感觉获益良多,为了巩固学习的内容,我决定尝试自己动手...
    99+
    2024-04-02
  • 写一个Java代码输出hello world
    以下是一个简单的 Java 代码,用于输出 "Hello, World!": public class HelloWorld { public static void main(String[] args) { Sy...
    99+
    2023-09-26
    java jvm eclipse 开发语言 spring
  • Python的爬虫框架scrapy用21行代码写一个爬虫
    开发说明 开发环境:Pycharm 2017.1(目前最新) 开发框架:Scrapy 1.3.3(目前最新) 目标 爬取线报网站,并把内容保存到items.json里 页面分析 根据上图我们可以发...
    99+
    2022-06-04
    爬虫 框架 代码
  • 又一个Python神器,不写一行代码,就可以调用Matplotlib绘图!
    sviewgui介绍sviewgui是一个基于 PyQt 的 GUI,用于 csv 文件或 Pandas 的 DataFrame 的数据可视化。此 GUI 基于 matplotlib,您可以通过多种方式可视化您的 csv 文件。主要特点:Ⅰ...
    99+
    2023-05-14
    代码 Python Matplotlib
  • 20行Python代码实现一款永久免费PDF编辑工具
    目录PyPDF2删除PDF页合并PDF旋转添加水印加密pdfminerPDF转TxT总结PDF是我们经常会接触到的一种文件格式,文献、文档...很多都是PDF格式。它以格式稳定的优势...
    99+
    2024-04-02
  • 用python写一个福字(附完整代码)
    目录前言:一,扫五福活动如此火爆,为何不自己利用编程来生成福字!二,完整代码三,总结前言: 支付宝 2022 集五福活动正式开启 数据显示,过去六年累计参与支付宝集五福的人数已经超过...
    99+
    2024-04-02
  • 利用20行Python代码实现加密通信
    目录一、引言二、加密技术三、普通锁:简单的对称加密四、不可篡改的指纹:哈希函数五、矛与盾:非对称加密六、真言:数字签名七、总结一、引言 网络上充满了窃听,我们的信息很容易被不怀好意的...
    99+
    2024-04-02
  • 20非常有用的Python单行代码分享
    目录1 一行 For 循环2 一行 While 循环3 一行 IF Else 语句4 一行合并字典5 一行函数6 一行递归7 一行数组过滤8 一行异常处理9 一行列表转字典10 一行...
    99+
    2022-11-16
    Python单行代码 Python 常用 代码
  • Android 画一个太极图实例代码
    今天练手一下,一起来画个太极图吧~ 最终效果如下: 最终效果 一般都是先讲原理,我就反其道而行,先讲实现吧。 1.继承实现初始化方法 继承View,实现基本的构造函数: ...
    99+
    2022-06-06
    太极 Android
  • 用pycharm怎么运行一个python代码
    在 pycharm 中运行 python 代码需要以下步骤:确保 pycharm 和 python 解释器已正确设置。打开要运行的代码文件。选择用于运行代码的运行配置。通过“运行文件”或...
    99+
    2024-04-17
    python pycharm
  • Python用20行代码实现完整邮件功能
    目录Python实现完整邮件一、邮箱端设置1、首先登录网页版126邮箱2、打开 设置—POP3/SMTP/IMAP配置界面 3、新增一个授权码 二、python发...
    99+
    2024-04-02
  • Python用20行代码实现批量抠图功能
    目录前言1.准备2.编写代码3.结果分析前言 抠图前 vs Python自动抠图后 在日常的工作和生活中,我们经常会遇到需要抠图的场景,即便是只有一张图片需要抠,也会抠得我们不耐...
    99+
    2024-04-02
  • Android计算器编写代码
    其实这个安卓计算机,所有的后台思想与《C#计算器编写代码》是一模一样的。Win窗体程序移植到安卓,从C#到Java其实很简单的,因为两者的基本语法都很相像,唯一的难点是安卓的x...
    99+
    2022-06-06
    编写代码 写代码 Android
  • android跳转代码怎么写
    在Android中,可以使用Intent来实现跳转功能。下面是一个示例代码,展示了如何在一个按钮点击事件中实现跳转到另一个Activ...
    99+
    2023-09-22
    android
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作