android圆形的ImageView
16lz
2021-12-04
android圆形的ImageView
view plain print ?- packagecom.example.testsam;
- importandroid.content.Context;
- importandroid.graphics.Bitmap;
- importandroid.graphics.Bitmap.Config;
- importandroid.graphics.Canvas;
- importandroid.graphics.Paint;
- importandroid.graphics.PorterDuff.Mode;
- importandroid.graphics.PorterDuffXfermode;
- importandroid.graphics.Rect;
- importandroid.graphics.drawable.BitmapDrawable;
- importandroid.graphics.drawable.Drawable;
- importandroid.util.AttributeSet;
- importandroid.widget.ImageView;
- /**
- *圆形的Imageview
- *@since2012-11-02
- *
- *@authorbingyang.djj
- *
- */
- publicclassCircleImageViewextendsImageView{
- privatePaintpaint=newPaint();
- publicCircleImageView(Contextcontext){
- super(context);
- }
- publicCircleImageView(Contextcontext,AttributeSetattrs){
- super(context,attrs);
- }
- publicCircleImageView(Contextcontext,AttributeSetattrs,intdefStyle){
- super(context,attrs,defStyle);
- }
- @Override
- protectedvoidonDraw(Canvascanvas){
- Drawabledrawable=getDrawable();
- if(null!=drawable){
- Bitmapbitmap=((BitmapDrawable)drawable).getBitmap();
- Bitmapb=toRoundCorner(bitmap,14);
- finalRectrect=newRect(0,0,b.getWidth(),b.getHeight());
- paint.reset();
- canvas.drawBitmap(b,rect,rect,paint);
- }else{
- super.onDraw(canvas);
- }
- }
- privateBitmaptoRoundCorner(Bitmapbitmap,intpixels){
- Bitmapoutput=Bitmap.createBitmap(bitmap.getWidth(),
- bitmap.getHeight(),Config.ARGB_8888);
- Canvascanvas=newCanvas(output);
- finalintcolor=0xff424242;
- finalRectrect=newRect(0,0,bitmap.getWidth(),bitmap.getHeight());
- paint.setAntiAlias(true);
- canvas.drawARGB(0,0,0,0);
- paint.setColor(color);
- intx=bitmap.getWidth();
- canvas.drawCircle(x/2,x/2,x/2,paint);
- paint.setXfermode(newPorterDuffXfermode(Mode.SRC_IN));
- canvas.drawBitmap(bitmap,rect,rect,paint);
- returnoutput;
- }
- }
可以直接当组件在布局文件中使用了
更多相关文章
- Android(安卓)之 ProgressDialog用法介绍
- Android实现圆角照片和圆形照片
- Android(安卓)之 ProgressDialog用法介绍
- android日历实现
- android 自定义组件随着手指自动画圆
- android软件开发:横竖屏
- android拖动条和评分组件的使用
- Android(安卓)ListView组件中android:drawSelectorOnTop含义
- Android菜鸟进阶之路一-Android基础