Andriod_圆形图标

效果图:

步骤:

  1. 建类CircleImageView
package com.example.design;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.Bitmap.Config;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.PorterDuff.Mode;
import android.graphics.PorterDuffXfermode;
import android.graphics.Rect;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.util.AttributeSet;public class CircleImageView extends android.support.v7.widget.AppCompatImageView {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);}public static Bitmap getCroppedBitmap(Bitmap bmp, int radius) {Bitmap sbmp;if (bmp.getWidth() != radius || bmp.getHeight() != radius) {float smallest = Math.min(bmp.getWidth(), bmp.getHeight());float factor = smallest / radius;sbmp = Bitmap.createScaledBitmap(bmp, (int) (bmp.getWidth() / factor), (int) (bmp.getHeight() / factor), false);} else {sbmp = bmp;}Bitmap output = Bitmap.createBitmap(radius, radius,Config.ARGB_8888);Canvas canvas = new Canvas(output);//final int color = 0xffa19774;final Paint paint = new Paint();final Rect rect = new Rect(0, 0, radius, radius);paint.setAntiAlias(true);paint.setFilterBitmap(true);paint.setDither(true);canvas.drawARGB(0, 0, 0, 0);//paint.setColor(Color.parseColor("#BAB399"));canvas.drawCircle(radius / 2 + 0.7f,radius / 2 + 0.7f, radius / 2 + 0.1f, paint);paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN));canvas.drawBitmap(sbmp, rect, rect, paint);return output;}@Overrideprotected void onDraw(Canvas canvas) {Drawable drawable = getDrawable();if (drawable == null) {return;}if (getWidth() == 0 || getHeight() == 0) {return;}Bitmap b = ((BitmapDrawable) drawable).getBitmap();Bitmap bitmap = b.copy(Bitmap.Config.ARGB_8888, true);int radius = getWidth(), h = getHeight();Bitmap roundBitmap = getCroppedBitmap(bitmap, radius);canvas.drawBitmap(roundBitmap, 0, 0, null);}}
  1. 在布局文件中,目标图片的前缀改为类的地址(将<ImageView改为<com.example.design.CircleImageView)

未改前

<ImageViewandroid:id="@+id/imageView2"android:layout_width="173dp"android:layout_height="177dp"android:src="@drawable/f2"app:layout_constraintBottom_toBottomOf="parent"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintHorizontal_bias="0.5"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toTopOf="parent" />

更改后

<com.example.design.CircleImageViewandroid:id="@+id/imageView2"android:layout_width="173dp"android:layout_height="177dp"android:src="@drawable/f2"app:layout_constraintBottom_toBottomOf="parent"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintHorizontal_bias="0.5"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toTopOf="parent" />

完成!!!So easy!!!

Andriod_圆形图标相关推荐

  1. Android CircleImageView实现圆形图标/头像

    一.用途 该框架是一个用来制作圆形图像的控件. 二.使用方式: 1.由于源码只有一个类和一个资源文件,因此可以直接下载源码.  2.直接引入lib库:compile 'de.hdodenhof:cir ...

  2. css3右下角悬浮圆形图标客服菜单代码

    介绍: 纯css3实现一款简单易用的右下角悬浮圆形图标客服菜单代码,点击右下角查看样式,可展开收缩二维码,qq客服,电话等.替换自己的联系方式后,加到网站上即可! 源码下载地址:css3客服菜单.zi ...

  3. android圆形图标显示不全,Android 9.0 Adaptive Icon 圆形图标剪切不全问题(上下左右部分被裁减)...

    一.继上一篇讲过设置圆形图标为默认后,发现圆形图标四周有被裁减的问题,如下图: 二.开始怀疑是launcher3中的图标设置大小出了问题,但是通过修改 launcher3中device_profile ...

  4. 为 Android 8.0 强制开启全局圆形图标规范

    原文地址:https://sspai.com/post/41011 看到标题,很多人也许会问:引入了 自适应图标规范 后,在 Android 8.0 上我们已经可以通过一些第三方 Launcher(比 ...

  5. ECharts 饼图实现自定义标签包含图标icon(圆形图标,矩形图标)

    1 原始效果图 2 实现代码 <body><!-- 为ECharts准备一个具备大小(宽高)的Dom --><div id="main" style= ...

  6. Java缩放图片及剪裁圆形图标代码

    剪裁圆形图标对生成png格式有效,对jpg无效,代码如下: import java.awt.AlphaComposite; import java.awt.Color; import java.awt ...

  7. android 代码设置图标背景色(圆形图标)和图标颜色

    原图: 1.改变图标颜色: mImageView.setColorFilter(Color.parseColor("#ff0000")); 效果: 2.改变图标背景色(主要是圆形图 ...

  8. 百度SEO站群网站右下角悬浮圆形图标客服菜单代码

    纯css3实现一款简单易用的右下角悬浮圆形图标客服菜单代码,点击右下角查看样式,可展开收缩二维码,qq客服,电话等. 下载地址: http://www.bytepan.com/3kdljMvyikT

  9. Android 9.0 Adaptive Icon 圆形图标剪切不全问题(上下左右部分被裁减)

    一.继上一篇讲过设置圆形图标为默认后,发现圆形图标四周有被裁减的问题,如下图: 二.开始怀疑是launcher3中的图标设置大小出了问题,但是通过修改 launcher3中device_profile ...

最新文章

  1. C#程序调用cmd执行命令
  2. 测试电子负载用于无线充电系统的功能和精度
  3. Apache Mahout 简介
  4. 中国锂电池行业运营态势分析与投资前景研究报告2022-2028年版
  5. 微信小程序从入门到飞起(环境搭建、配置)
  6. numa节点_极致性能(1):以NUMA为起点
  7. 3个Gmail 邀请,先进先出!!
  8. Lock(ReentrantLock)实现线程同步,线程安全
  9. 超详细步骤 | 如何用小程序 SDK 实现电商评价模
  10. python图像转矩阵_python 图像转矩阵,矩阵转图像
  11. java转码工具_java转码工具native2ascii
  12. SPSS实现重复测量方差分析
  13. xshell4的使用经验
  14. 内网穿透工具开发者运维人员必备
  15. D语言游戏编程(1):工作环境
  16. 【工程师笔记】第六期:一项Xeon E5-2600 v4测试数据的背后
  17. 通过神经网络实现线性回归模型预测水泥强度
  18. 学弟:功能测试转测试开发容易吗?
  19. 忆享聚焦|全球云计算市场份额、数字虚拟人、“元宇宙”实体店……近期行业热点速览
  20. 设计师常用的7款界面设计工具!

热门文章

  1. Accumulo入门手册
  2. 疑难杂症:内存明明很富裕,却还是申请不到?
  3. 计算机缺失dptool.dll,dllDPSource_EN.dll
  4. B+树比Hsh好处在于
  5. 在按键精灵里使用奥迦插件查找和枚举窗口句柄
  6. python制作五子棋_python制作简单五子棋游戏
  7. 基于蒙特卡罗模拟的股票风险价值VaR测算
  8. 苏宁易购开放平台_大增56.83%!苏宁开放平台表现优越,助推业绩实现高增长
  9. SpringBoot整合AWS S3
  10. 用matlab微分先行设计,微分先行控制系统.doc