android圆形的ImageView
来源:互联网 发布:虎嗅创新节 知乎 编辑:程序博客网 时间:2024/04/27 22:08
2014.3.25修改,请参看这个开源项目:https://github.com/hdodenhof/CircleImageView
参考了网上一些人的代码,自己做了一些修改
package com.example.testsam;import android.content.Context;import android.graphics.Bitmap;import android.graphics.Bitmap.Config;import android.graphics.Canvas;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;/** * 圆形的Imageview * @since 2012-11-02 * * @author bingyang.djj * */public class CircleImageView extends ImageView {private Paint paint = new Paint();public CircleImageView(Context context) {super(context);}public CircleImageView(Context context, AttributeSet attrs) {super(context, attrs);}public CircleImageView(Context context, AttributeSet attrs, int defStyle) {super(context, attrs, defStyle);}@Overrideprotected void onDraw(Canvas canvas) {Drawable drawable = getDrawable();if (null != drawable) {Bitmap bitmap = ((BitmapDrawable) drawable).getBitmap();Bitmap b = toRoundCorner(bitmap, 14);final Rect rect = new Rect(0, 0, b.getWidth(), b.getHeight());paint.reset();canvas.drawBitmap(b, rect, rect, paint);} else {super.onDraw(canvas);}}private Bitmap toRoundCorner(Bitmap bitmap, int pixels) {Bitmap output = Bitmap.createBitmap(bitmap.getWidth(),bitmap.getHeight(), Config.ARGB_8888);Canvas canvas = new Canvas(output);final int color = 0xff424242;final Rect rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight());paint.setAntiAlias(true);canvas.drawARGB(0, 0, 0, 0);paint.setColor(color);int x = bitmap.getWidth();canvas.drawCircle(x / 2, x / 2, x / 2, paint);paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN));canvas.drawBitmap(bitmap, rect, rect, paint);return output;}}
可以直接当组件在布局文件中使用了
- android圆形的ImageView
- android圆形的ImageView
- Android圆形的ImageView
- android 圆形的ImageView
- android圆形的ImageView
- Android圆形的Imageview
- android圆形的ImageView
- android 圆形头像的Imageview
- Android中圆形的imageView
- android 绘制圆形的ImageView
- android 自定义圆形的ImageView
- android中自定义的圆形ImageView
- Android开源之圆形的ImageView
- android 关于圆形imageview的做法
- Android 圆形 ImageView
- android:圆形 ImageView
- android实现圆形ImageView
- Android圆形imageview实现
- 一个人的夜晚,才会最真实吧?:QQ伤感日志
- 天气预报接口(中国天气网)
- 【高德地图API】如何打造十月妈咪品牌地图?
- Linux驱动设备模型之Platform
- 最小化版CentOS v6.0 32bit Minimal 编译安装Apache+MySQL+PHP+Zend
- android圆形的ImageView
- 做程序时遇到的问题
- 把“小米手机”当成“手机”?你错了
- 日称中国正成世界级造舰国 长兴岛昼夜不停工
- eclipse + autotools (1)
- 浅谈声明和定义区别
- 一起学习win8应用1-构建我们的第一个应用
- 推荐一系列优秀的Android开发源码
- 创建进程 与 强杀进程