Android实现圆形ImageView
来源:互联网 发布:java程序设计大学课本 编辑:程序博客网 时间:2024/05/29 09:45
项目需要,我需要画一个圆形的ImageView,在网上找了很多资料后,终于发现了一个简单实用的自定义图形,分享一下:
继承自ImageView类
import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.graphics.PaintFlagsDrawFilter;import android.graphics.Path;import android.graphics.Region;import android.util.AttributeSet;import android.widget.ImageView;public class CircleImageView extends ImageView {Path path;public PaintFlagsDrawFilter mPaintFlagsDrawFilter;// 毛边过滤Paint paint;public CircleImageView(Context context, AttributeSet attrs, int defStyle) {super(context, attrs, defStyle);// TODO Auto-generated constructor stubinit();}public CircleImageView(Context context, AttributeSet attrs) {super(context, attrs);// TODO Auto-generated constructor stubinit();}public CircleImageView(Context context) {super(context);// TODO Auto-generated constructor stubinit();}public void init(){mPaintFlagsDrawFilter = new PaintFlagsDrawFilter(0,Paint.ANTI_ALIAS_FLAG|Paint.FILTER_BITMAP_FLAG);paint = new Paint();paint.setAntiAlias(true);paint.setFilterBitmap(true);paint.setColor(Color.WHITE);}@Overrideprotected void onDraw(Canvas cns) {// TODO Auto-generated method stubfloat h = getMeasuredHeight()- 3.0f;float w = getMeasuredWidth()- 3.0f;if (path == null) {path = new Path(); path.addCircle( w/2.0f , h/2.0f , (float) Math.min(w/2.0f, (h / 2.0)) , Path.Direction.CCW); path.close();}cns.drawCircle(w/2.0f, h/2.0f, Math.min(w/2.0f, h / 2.0f) + 1.5f, paint); int saveCount = cns.getSaveCount(); cns.save(); cns.setDrawFilter(mPaintFlagsDrawFilter); cns.clipPath(path,Region.Op.REPLACE); cns.setDrawFilter(mPaintFlagsDrawFilter); cns.drawColor(Color.WHITE);super.onDraw(cns);cns.restoreToCount(saveCount);}}
效果:
阅读全文
1 0
- android实现圆形ImageView
- Android圆形imageview实现
- Android实现圆形ImageView
- Android ImageView实现圆形头像
- Android实现自定义圆形ImageView
- android 实现圆形imageView,Circle imageView
- Android ImageView实现圆角,圆形图片
- android自定义ImageView实现圆形图片
- Android 三种方式实现圆形ImageView
- Android实现自定义圆形/圆角ImageView
- Android自定义ImageView实现圆形控件显示
- Android实现圆形Imageview,带白色边框
- android 自定义ImageView实现圆形压缩图片
- Xamarin Android Circle ImageView 圆形图片实现
- Android BitmapShader实现圆角、圆形ImageView
- Android自定义ImageView实现圆形图片
- Android 简易 自定义ImageView 实现圆形头像
- Android 简单实现圆形ImageView添加双层圆形边框
- 数据库存储过程及其调用
- 曝光真相
- 上拉刷新下拉加载
- 为什么我的Tomcat启动时第一次不报错,第二次就报类找不到异常,求大神
- a+b等于几(不用+)
- Android实现圆形ImageView
- 12.18
- 每天学习API之二 ,zepto源码camelize, dasherize
- C#中使用OpenGL:(七)创建OpenGL渲染环境
- 用户态 内核态
- 微信小程序常用代码
- java 多线程(1) wait和notifier实例
- hadoop+intellij+maven实现wordcount程序
- webdriverapi