重写ImageView画圆
来源:互联网 发布:怎么查网络ip地址 编辑:程序博客网 时间:2024/05/20 08:41
import android.content.Context;import android.graphics.Bitmap;import android.graphics.Bitmap.Config;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.graphics.PorterDuff.Mode;import android.graphics.PorterDuffXfermode;import android.graphics.Rect;import android.graphics.drawable.BitmapDrawable;import android.graphics.drawable.Drawable;import android.util.AttributeSet;import android.widget.ImageView;public class CustomImageView extends ImageView{ public CustomImageView(Context context) { super(context); // TODO Auto-generated constructor stub } public CustomImageView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); // TODO Auto-generated constructor stub } public CustomImageView(Context context, AttributeSet attrs) { super(context, attrs); // TODO Auto-generated constructor stub } @Override protected void onDraw(Canvas canvas) { Drawable drawable = getDrawable(); if (drawable == null) { return; } if (getWidth() == 0 || getHeight() == 0) { return; } Bitmap b = ((BitmapDrawable)drawable).getBitmap() ; Bitmap bitmap = b.copy(Config.ARGB_8888, true); Bitmap roundBitmap = getCroppedBitmap(bitmap, getWidth()); canvas.drawBitmap(roundBitmap, 0, 0, null); } public static Bitmap getCroppedBitmap(Bitmap bmp, int radius) { Bitmap sbmp; if(bmp.getWidth() != radius || bmp.getHeight() != radius) sbmp = Bitmap.createScaledBitmap(bmp, radius, radius, false); else sbmp = bmp; Bitmap output = Bitmap.createBitmap(sbmp.getWidth(), sbmp.getHeight(), Config.ARGB_8888); final Rect rect = new Rect(0, 0, sbmp.getWidth(), sbmp.getHeight()); Paint paint = new Paint(); paint.setAntiAlias(true); paint.setFilterBitmap(true); paint.setDither(true); paint.setColor(Color.parseColor("#BAB399")); Canvas c = new Canvas(output); c.drawARGB(0, 0, 0, 0); c.drawCircle(sbmp.getWidth() / 2+0.7f, sbmp.getHeight() / 2+0.7f, sbmp.getWidth() / 2+0.1f, paint); paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN)); c.drawBitmap(sbmp, rect, rect, paint); return output; }}
0 0
- 重写ImageView画圆
- 自定义ImageView重写onTouchEvent
- 自定义ImageView重写onTouchEvent
- 重写ImageView圆形边框
- android控件之imageview 以及重写imageview
- 重写ImageView设置圆角
- Android 重写ImageView实现图片手势功能
- android 个人信息 圆形头像 重写ImageView
- 重写ImageView从相册绘制图片
- imageview画圆
- android 如何重写imageview 让图片有圆角效果
- 重写ImageView控件导致浮动menu位置为初始状态
- 自定义view重写触摸事件-imageview为例
- Android BitmapShader 实战 实现圆形、圆角图片(重写ImageView)
- 自定义ImageView画圆
- ImageView
- ImageView
- ImageView
- spring 配置文件浅析
- 重写view画圆中间文字
- 【leetcode】String to Integer (atoi)
- js中的包装对象
- 高德地图MapView和其他SurfaceView在同一个Activity中重叠显示透明问题
- 重写ImageView画圆
- Element translate must be declared
- C#控制台基础 检测一个string数组是否包含指定的string字符串
- spring Bean的命名
- C++链表
- Expected resource of type id
- 《TCP/IP详解 卷1:协议》 读书笔记 第22章 TCP的坚持定时器
- nullable、__nullable、_Nullable 究竟有什么区别呢?
- 单线程爬虫之“中国领导干部资料库”