超简洁代码实现CircleImageView
来源:互联网 发布:淘宝退款邮费怎么算 编辑:程序博客网 时间:2024/06/04 20:06
效果图:
页面代码:
public class CircleView extends ImageView { private Paint mPaint = new Paint(); public CircleView(Context context, AttributeSet attrs) { super(context, attrs); } @Override protected void onDraw(Canvas canvas) { Drawable mDrawable = getDrawable();//获取xml文件设置的图片 if (null == mDrawable) super.onDraw(canvas);//如果为空,交给父类处理 Bitmap mBitmap = ((BitmapDrawable) mDrawable).getBitmap();//将图片转化成bitmap int len = getWidth() < getHeight() ? getWidth() : getHeight();//获取xml的长宽属性值,选择较小的 Bitmap tempBitmap = Bitmap.createBitmap(len, len, Bitmap.Config.ARGB_8888);//新建一个bitmap对象,作为缓存 Canvas mCanvas = new Canvas(tempBitmap);//新建画布缓存bitmap对象 mPaint.setAntiAlias(true);//抗锯齿 mCanvas.drawCircle(len / 2, len / 2, len / 2, mPaint);//画一个圆 mPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN));//设置画笔的覆盖类型 Matrix matrix = new Matrix(); // 初始化Matrix对象 matrix.setScale((float) len / mBitmap.getWidth(), (float) len / mBitmap.getHeight()); //设置缩放比例 mCanvas.drawBitmap(mBitmap, matrix, mPaint);//画出缩放后的图片 mPaint.reset();//重置画笔 canvas.drawBitmap(tempBitmap, 0, 0, mPaint);//绘制缓存图片 }}
2 0
- 超简洁代码实现CircleImageView
- Jquery 分页超简洁代码
- 简易计算器 超简洁代码
- Java输出空心菱形,代码超简洁
- UVa1587--Box--盒子(代码超简洁)
- 优秀代码赏析:CircleImageView
- 100行代码 CircleImageView
- 杭电OJ-2104_hide handkerchief超简洁代码
- 自己动手实现CircleImageView
- 超简洁的下拉刷新(二)用srcoller实现
- 单击实现checkbox的全选/全不选(超简洁)
- Android快速打造超简单CircleImageView
- 超简洁js表格
- 一行js代码!实现一个简洁表格
- PYTHON实现RSA算法之简洁代码
- pv操作实现(代码简洁有效)
- 最简洁代码实现卡片翻转效果
- lombok-实现java代码简洁化
- Android中的Http通信
- STL
- Android 快速开发系列 打造万能的ListView GridView 适配器
- 泛函编程(35)-泛函Stream IO:IO处理过程-IO Process
- 移植hostapd,搭建无线热点
- 超简洁代码实现CircleImageView
- 玩转Android---UI篇---WebView(网络视图)
- UVALive 6908
- 两种对 URL 的散列效果很好的函数
- org.apache.commons.lang.math.NumberUtils 工具类
- Linux内核线程
- QTableWidget详解(样式、右键菜单、表头塌陷、多选等) (非代理)
- nyoj 括号配对问题
- 去除JSP页面自动生成的空行