1.CircleImageView类代码


public class CircleImageView extends androidx.appcompat.widget.AppCompatImageView {//画笔private Paint mPaint;//圆形图片的半径private int mRadius;//图片的宿放比例private float mScale;public CircleImageView(Context context) {super(context);}public CircleImageView(Context context, @Nullable AttributeSet attrs) {super(context, attrs);}public CircleImageView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {super(context, attrs, defStyleAttr);}@Overrideprotected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {super.onMeasure(widthMeasureSpec, heightMeasureSpec);//由于是圆形,宽高应保持一致int size = Math.min(getMeasuredWidth(), getMeasuredHeight());mRadius = size / 2;setMeasuredDimension(size, size);}@SuppressLint("DrawAllocation")@Overrideprotected void onDraw(Canvas canvas) {mPaint = new Paint();Drawable drawable = getDrawable();if (null != drawable) {Bitmap bitmap = ((BitmapDrawable) drawable).getBitmap();//初始化BitmapShader,传入bitmap对象BitmapShader bitmapShader = new BitmapShader(bitmap, Shader.TileMode.CLAMP, Shader.TileMode.CLAMP);//计算缩放比例mScale = (mRadius * 2.0f) / Math.min(bitmap.getHeight(), bitmap.getWidth());Matrix matrix = new Matrix();matrix.setScale(mScale, mScale);bitmapShader.setLocalMatrix(matrix);mPaint.setShader(bitmapShader);//画圆形,指定好坐标,半径,画笔canvas.drawCircle(mRadius, mRadius, mRadius, mPaint);} else {super.onDraw(canvas);}}}

2.布局文件中使用

代码

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".MainActivity"><com.hnucm18jr.myapplication.CircleImageViewandroid:layout_width="100dp"android:layout_height="100dp"android:src="@drawable/a1"app:layout_constraintLeft_toLeftOf="parent"app:layout_constraintRight_toRightOf="parent"app:layout_constraintTop_toTopOf="parent"android:layout_marginTop="200dp"/></androidx.constraintlayout.widget.ConstraintLayout>

Android 小工具--圆形图片相关推荐

  1. Python小工具-证件照图片处理-缩放、灰度、换底色

    Python小工具-证件照图片处理-缩放.灰度.换底色 参考链接: 20行代码教你用python给证件照换底色 import cv2 import numpy as np img = cv2.imre ...

  2. Android自定义圆角圆形图片

    转载请注明出处:http://blog.csdn.net/binbinqq86/article/details/79463977 说起Android里面的自定义圆角圆形图片,已经算是老生常谈的话题了, ...

  3. android画一个圆形图片组件

    imageview 显示圆形图片如下图. 圆形头像原理. 1.根据图片创建一个大小相同的画布. 2.在画布上画一个圆形. 3.画一个绘制交集,显示上层. // 将圆形图片,返回Bitmappublic ...

  4. C#小工具 ---- 压缩图片并指定图片大小

    目录 简单的介绍 图像压缩类 简单的介绍 某宝店铺上传图片时,要求单张图片大小不能大于3M.而现在的手机像素越来越高,一张图片的字节数也越来越大. 在遇到需要大量上传图片时,那可真是苦不堪言呀. 为了 ...

  5. python趣味小工具,图片转Execl,图片转TXT工具

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. WHJWNAVY | 作者 Demo大师 | 来源 python 趣味实用 ...

  6. Android自定义控件实现圆形图片

    前言:我们都知道as(Android Studio)里面的所有可以使用图片的控件,都是方方正正的,如果我们做头像作用时,方方正正的就很奇怪,我们就想要一个圆的图片了.这里介绍一种自定义控件的方式来实现 ...

  7. android小工具-系统音量管理器

    简介:调节系统音量的小工具,能够快捷的调节系统铃声,媒体音乐.闹钟和通话声音.你可能会想,手机自带的音量键还不够快捷吗?还得写个程序?首先,用音量键调音只能调节一种声音,像闹钟这种声音不能直接调.其次 ...

  8. android 小工具:pc 上用 curl 命令打开手机浏览器,浏览指定网址

    测试 API 时或其它情况经常需要在手机浏览器中输入 url 一长串的 url 输起来真是麻烦 AirDroid 很强大也不用数据线,但有时老断开连接,不是很爽.发到手机 qq 吧还得手动粘贴 所以自 ...

  9. 微信小程序——圆形图片image控件、两个字和三个字对齐

    一.image控件中显示圆形图片 首先来个效果图: 然后我们来看看源码: wxml中: <image class="image_radius" src="../im ...

最新文章

  1. 第一章 MongoDb概述
  2. dorado listener属性
  3. lua学习笔记之数据文件及序列化
  4. 闲着无聊,今天就写个 dockerfile 定制 tomcat+nginx 集群
  5. 接口可以继承抽象类吗_Python接口类的多继承以及抽象类的单继承
  6. java运用ascii实现动画效果_安卓开发20:动画之Animation 详细使用-主要通过java代码实现动画效果...
  7. 吴恩达深度学习4.2练习_Convolutional Neural Networks_the Happy House(Keras)
  8. 哪些因素造成外贸网站没效果?
  9. Ncurses 命令行图形库
  10. 为什么用易互动投屏电视没声音?
  11. 如何生成微信小程序码(获取微信小程序码)
  12. 谈谈DDD(领域驱动设计)
  13. 《数据结构与算法实战-周强-2.2》——大炮打蚊子
  14. linux毁了所有数据,小心!数据在你不注意的时候居然偷偷损毁了
  15. Unity(四十三):存档、文本文件读写
  16. 工程伦理 第九章习题 答案
  17. 数据挖掘:网络挖掘技术——微博文本特征提取
  18. Passthrough is not supported, GL is swiftshader
  19. 三维可视化技术在智慧城市建设中的应用
  20. java制作网易邮箱登录页面,java调用网易邮箱需要注意的点

热门文章

  1. 跟王佩丰学习VBA-纯代码(1-8讲)
  2. Android开源项目 陌客随机聊天
  3. sin n次方 x 的降幂公式
  4. GD32F4(2): 用keil5打开官方评估版demo,编译报错找不到core_cm4.h文件
  5. Intellij Idea 全屏设置
  6. 计算机超级账号密码,获取光猫超级用户密码,自己动手分分钟搞定!
  7. php guzzlehttp,PHP HTTP客户端-Guzzle原理解析
  8. 读入一张图片,并且转化成灰度值
  9. pandas操作excel 笔记
  10. MERGE JOIN CARTESIAN