博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
圆角图片以及特殊形状的图片绘制方法
阅读量:4672 次
发布时间:2019-06-09

本文共 1094 字,大约阅读时间需要 3 分钟。

今天研究了一下圆角图片与布局,布局的话可以直接使用shape来完成,定义一个myshape.xml,来定义圆角

以上代码是定义一个带有圆角的形状 corners用来定义圆角的半径, gradient用来设置渐变. 讲myshape.xml放入到drawable文件夹下. 然后在布局中引用 直接使用android:background="@drawable/myshape"即可,作为背景使用就好. 圆角图片最开始瞎忙乎了几个小时,一心就像完全可以通过shape来实现,后来发现ImageView在应用Shape背景后,它的绘制区域还是一个正方形. 要实现圆角图片两种方法: 1.使用canvas重绘与Path重绘 2.继承ImageView 在onDraw方法中绘制 (与上面的方法基本相同,只是不需要在将图片处理的代码放到逻辑中了) 我比较懒,使用第一种方式非常是和我这样的懒人. pngBM为原始的图片对象
Bitmap src = pngBM.copy(Bitmap.Config.ARGB_8888, true); dest = Bitmap.createBitmap(pngBM.getWidth(), pngBM.getHeight(), Bitmap.Config.ARGB_8888); int radius = pngBM.getWidth() / 2;//src为我们要画上去的图,跟上一个示例中的bitmap一样。 if(pngBM.getWidth()>pngBM.getHeight()) { radius = pngBM.getHeight()/2; } Canvas c = new Canvas(dest); Paint paint = new Paint(); paint.setColor(Color.BLACK); paint.setAntiAlias(true); Path path = new Path(); path.addCircle(radius, radius, radius, Path.Direction.CW); c.clipPath(path); //裁剪区域 c.drawBitmap(src, 0, 0, paint);//把图画上去
使用一张新的画布来从新按照圆形的Path绘制! Path可以实现任意形状的绘制!

转载于:https://www.cnblogs.com/raffeale/p/4630594.html

你可能感兴趣的文章
MySQL中Checkpoint技术
查看>>
【MT】牛津的MT教程
查看>>
Meta标签中的format-detection属性及含义
查看>>
PowerDesigner教程系列(四)概念数据模型
查看>>
DataGradView操作之,列头右键菜单隐藏和显示字段功能
查看>>
windows中使用Git工具连接GitHub(配置篇)
查看>>
示例 - 10行代码在C#中获取页面元素布局信息
查看>>
Linux 发行版本简介 (zz)
查看>>
POJ 2387 Til the Cows Come Home(Dijkstra)
查看>>
关于使用Tomcat服务器出现413错误的解决办法(Request Entity Too Large)
查看>>
离线使用iPhone SDK文档的方法
查看>>
$watch, $watchCollection, $watchGroup的使用
查看>>
Jquery下拉效果
查看>>
Python——配置环境的导出与导入
查看>>
BZOJ2689 : 堡垒
查看>>
BZOJ1110 : [POI2007]砝码Odw
查看>>
浅谈“be practical and realistic”
查看>>
python 多线程 paramiko实现批量命令输入输出
查看>>
C语言学习系列(六)基本语法
查看>>
如何在rul中添加图片
查看>>