超简洁代码实现CircleImageView

效果图:

页面代码:{private Paint mPaint = new Paint();public CircleView(Context context, AttributeSet attrs) {super(context, attrs);}(Canvas canvas) {Drawable mDrawable = getDrawable();//获取xml文件设置的图片if (null == mDrawable) super.onDraw(canvas);//如果为空,交给父类处理Bitmap mBitmap = ((BitmapDrawable) mDrawable).getBitmap();//将图片转化成bitmapint 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);//绘制缓存图片}}

转动心中的期待,血在澎湃,吃苦流汗算什么。

超简洁代码实现CircleImageView

相关文章:

你感兴趣的文章:

标签云: