Android圆角图片封装类
16lz
2021-01-23
http://www.oschina.net/question/783094_132836
package com.phodev.andtools.widget;import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.graphics.PorterDuff;import android.graphics.PorterDuffXfermode;import android.graphics.RectF;import android.util.AttributeSet;import android.widget.ImageView;/** * 圆角ImageView * * @author skg * */public class RoundImageView extends ImageView {public RoundImageView(Context context, AttributeSet attrs) {super(context, attrs);init();}public RoundImageView(Context context) {super(context);init();}private final RectF roundRect = new RectF();private float rect_adius = 6;private final Paint maskPaint = new Paint();private final Paint zonePaint = new Paint();private void init() {maskPaint.setAntiAlias(true);maskPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN));//zonePaint.setAntiAlias(true);zonePaint.setColor(Color.WHITE);//float density = getResources().getDisplayMetrics().density;rect_adius = rect_adius * density;}public void setRectAdius(float adius) {rect_adius = adius;invalidate();}@Overrideprotected void onLayout(boolean changed, int left, int top, int right,int bottom) {super.onLayout(changed, left, top, right, bottom);int w = getWidth();int h = getHeight();roundRect.set(0, 0, w, h);}@Overridepublic void draw(Canvas canvas) {canvas.saveLayer(roundRect, zonePaint, Canvas.ALL_SAVE_FLAG);canvas.drawRoundRect(roundRect, rect_adius, rect_adius, zonePaint);//canvas.saveLayer(roundRect, maskPaint, Canvas.ALL_SAVE_FLAG);super.draw(canvas);canvas.restore();}}
更多相关文章
- 代码中设置drawableleft
- android 3.0 隐藏 系统标题栏
- Android开发中activity切换动画的实现
- Android(安卓)学习 笔记_05. 文件下载
- Android中直播视频技术探究之—摄像头Camera视频源数据采集解析
- 技术博客汇总
- android 2.3 wifi (一)
- AndRoid Notification的清空和修改
- Android中的Chronometer