Android圆角图片封装类(直接使用)
16lz
2022-05-28
在别的地方看到的一个实现圆角图片的类、拿来和大家分享~
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(); } @Override protected 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); } @Override public 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(); } }
更多相关文章
- GridView 实现水平拖拉效果
- GridView 实现水平拖拉效果
- android 实现无限定时循环viewpager
- android实现左右滑动菜单
- Android实现倒计时启动功能的实现
- android中动态实现全屏和动态退出全屏方法
- android intent 传递对象需要序列化实现Parcelable接口
- 一个Android实现图片的倒影效果的代码示例
- 浅谈Java中Collections.sort对List排序的两种方法