有的时候我们须要圆形或者矩形的位图。比方QQ头像是圆形的,还有圆角矩形的,这些是怎么做到呢?

这涉及到Xfermode,所以有必要先看一下XFermode的概念,可參考这篇文章

http://blog.csdn.net/t12x3456/article/details/10432935

以下给出获取圆形位图的详细代码

public Bitmap getRoundBitmap(){Paint paint = new Paint();int color = paint.getColor();Bitmap bmp = Bitmap.createBitmap(getWidth(), getHeight(), Config.ARGB_8888);Canvas canvas = new Canvas(bmp);canvas.<span style="color:#ff0000;">drawCircle</span>(getWidth()/2, getHeight()/2, Util.dp2px(mContext, 100), paint);//paint.setColor(color);paint.setXfermode(new PorterDuffXfermode(<span style="color:#ff0000;">PorterDuff.Mode.SRC_IN</span>));canvas.drawBitmap(mBmpPhoto, saveMatrix, paint);return bmp;}

须要什么样的图形,仅仅须要把drawCircle换成对应的方法就可以

上述代码中的

Util.dp2px(mContext, 100)方法是将dp转换成像素
public static int dp2px(Context context, float dipValue) {
<span style="white-space:pre">     </span>final float scale = context.getResources().getDisplayMetrics().density;
<span style="white-space:pre">     </span>return (int) (dipValue * scale + 0.5f);
<span style="white-space:pre"> </span>}
相应的还有将sp转换成像素的
public static int sp2px(Context context, float spValue) {
<span style="white-space:pre">     </span>final float fontScale = context.getResources().getDisplayMetrics().scaledDensity;
<span style="white-space:pre">     </span>return (int) (spValue * fontScale + 0.5f);
<span style="white-space:pre"> </span>}

获取各种常见形状的位图相关推荐

  1. android 获取当前画布,Android硬件位图填坑之获取硬件画布

    前言 Hardware Bitmap(硬件位图)是Android8.0加入的新功能,通过设置Bitmap的config为Bitmap.Config.HARDWARE,创建所谓的Hardware Bit ...

  2. java中servletcontext_java中获取ServletContext常见方法

    1.在javax.servlet.Filter中直接获取 ServletContext context = config.getServletContext(); 2.在HttpServlet中直接获 ...

  3. java 圆的交点_java – 获取线条和形状的交点

    理念 您可以使用getPathIterator()方法将GenenralPath解构为其段(移动到,行到,四到,立方到,关闭).现在,您可以搜索每个线段与线的交叉点. public static Po ...

  4. linux bash 获取 国内常见网站的IP列表

    wget -O- 'http://ftp.apnic.net/apnic/stats/apnic/delegated-apnic-latest' | awk -F\| '/CN\|ipv4/ { pr ...

  5. python获取List的形状

    key:先要转化成array 代码: import numpy as npL = [[1,2],[3,4],[5,6],[7,8]] L = np.array(L)print(L.shape) 结果 ...

  6. 原生js获取document_常见的原生javascript DOM操作

    1.创建元素 创建元素:document.createElement() 使用document.createElement()可以创建新元素.这个方法只接受一个参数,即要创建元素的标签名.这个标签名在 ...

  7. Java获取照片的Exif信息,并解析GPS

    Java获取照片的Exif信息,并解析GPS 1. 效果图 2. 什么是Exif? 3. 源代码 参考 ❤️ 这篇博客将介绍什么EXIF,以及如何用Java语言读取Exif信息,并转换经纬度为位置信息 ...

  8. SpringMVC之请求参数的获取方式

    转载出处:https://www.toutiao.com/i6510822190219264516/ SpringMVC之请求参数的获取方式 常见的一个web服务,如何获取请求参数? 一般最常见的请求 ...

  9. oracle 数据执行计划,Oracle里常见的执行计划

    本文介绍了Oracle数据库里常见的执行计划,使用的Oracle数据库版本为11.2.0.1. 1.与表访问相关的执行计划 Oracle数据库里与表访问有关的两种方法:全表扫描和ROWID扫描.反映在 ...

最新文章

  1. 生产者与消费者(三)---BlockingQueue
  2. MyBatis入门2
  3. Python基础05 缩进和选择
  4. sql2005备份还原详解
  5. PythonRabbitmq文档阅读笔记-生产者数据直接送入队列消费者消费
  6. 2020年最新程序员职业发展路线指南,超详细!
  7. Autosar诊断——故障诊断方案设计
  8. ELK——Kibana 安装使用性能监控工具 APM
  9. 从pdf复制文字到word中的问题
  10. JavaSE练习题之不死神兔
  11. 关于模型训练的时候所需要的GPU显存的计算以及模型参数,计算量的计算
  12. Arduino实现数码管动态显示
  13. 爬取微博上某大v,明星,官微等用户的微博信息的小技巧
  14. [Swift]Set(集)转换为Array(数组)
  15. java面试题:Redis常见面试题(实际面试有被问到)
  16. 计算机网络教程-现代计算机网络(1)
  17. 第9章 开发实例-文件保险箱
  18. 赚四五百万,一款打卡作弊软件的 CEO 被判5年6个月!因破坏了钉钉系统获取用户真实地理位置...
  19. 求伯君:金山电脑公司总裁
  20. IE和Dom事件流的区别

热门文章

  1. 过分了,又双叒叕吃狗粮:因为爱情,才有思科
  2. 低价iPhone你买吗? | 每日趣闻
  3. 我和美国 AI 博士聊了聊:2020 年,这件事比存钱更重要!
  4. pip删除依赖、配置虚拟环境
  5. vnx vmax分盘过程
  6. Linux Kernel 5.0 RC 7 发布
  7. Vue实现左右菜单联动实现
  8. sharepoint 中用自带的download.aspx实现文件的下载,中文文件名编码的问题
  9. jquery easyui datagrid 显示外键/子属性/二层属性的值的方法
  10. JAVA_Thread_interrupt