package com.*.widget;
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;
/**
*
* android circle imageView
* @author Block Cheng
*
*/
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 stub
init();
}
public CircleImageView(Context context, AttributeSet attrs) {
super(context, attrs);
// TODO Auto-generated constructor stub
init();
}
public CircleImageView(Context context) {
super(context);
// TODO Auto-generated constructor stub
init();
}
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);
}
@Override
protected void onDraw(Canvas cns) {
// TODO Auto-generated method stub
float 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);
}
}
分享到:
相关推荐
Android自定义圆形图片,可设置最多两个的外边框。包括从网络获取图片显示。 解决图片锯齿问题。 解决图片变形问题。 文章地址:http://blog.csdn.net/alan_biao/article/details/17379925
Android自定义圆形图片,可设置最多两个的外边框。包括从网络获取图片显示。 解决图片锯齿问题。 解决图片变形问题 有需要的可以下载,效果图在 http://blog.csdn.net/wangqing830414/article/details/39612421
android圆形图片控件,在项目开发中,我们经常需要用到圆形图片效果,典型案例是用户头像的显示。
Android Face人脸识别检测,圆形相机预览框,截取图片(宽高自定义),圆形图片显示
介绍两种使用 BitmapTransformation 来实现 Glide 加载圆形图片和圆角图片的方法。Glide 并不能直接支持 Round Pictures ,需要使用 BitmapTransformation 来进行处理。 二、网上的实现方式 这里介绍下网上常见的...
Android studio ,图片编辑后显示为圆角矩形图片或圆形图片
本项目是一个仿百度网页音乐播放器圆形图片转圈播放效果,效果可以看一下这里http://www.baidu.com/s?wd=%E9%A3%9E%E5%BE%97%E6%9B%B4%E9%AB%98,主要是自定义了一个圆形ImageView,可以设置最多两个宽度不同且颜色...
CircleView,可以将图片圆形显示的View,实现方式很简单,做这个控件就是为了可以直接方便的显示圆形图片,在显示的时候,提供了更多的选择,比如下面讲到的偏移显示。使用方法在build.gradle文件中加上这句:...
本资源主要实现了以下功能: 1.圆形相机预览框 2 .FaceDetector人脸识别检测 3.截取图片中的人脸图片(宽高自定义) 4.圆形图片显示 效果图请转至:https://blog.csdn.net/m13984458297/article/details/95945534
生成圆形图片可用于列表前边的图片,可设置边框。
为了用户体验更多,Android 自定义ImageView显示圆形,矩形,椭圆通过自定义ImageView来实现,首先获取到图片的Bitmap,然后通过Paint和onDraw()进行圆形图片显示。
Android进阶篇之RoundProgress(圆形进度条)使用两张图片叠加实现
采用paint.setXfermode() 设置一个简单的圆形遮罩,详细了解请移步http://blog.csdn.net/zxc514257857/article/details/63834235
Android 圆形百分比中间空心,动画实现绘制圆形的效果。绘制百分比,将其显示在中间位置。实现相关效果,写了一些代码
圆开图片显示. 有类型微博右下角的的认证图标效果. 带本地图片缓存,没有缓存网络下载,用的是volley. 简单的自定义头像编辑界面: 可以通过相机和相册来选择图片. 编辑区域为圆形. 支持如果只是显示头像而不是...
android绘制圆形,主要用于获取网络图片,头像圆形显示
圆形图片想必是项目开发中也是不少用的一个知识点吧。那么这里学习一下简单的制作圆形图片,这个方法不用于平时的实现方法,有需要的可以参考借鉴。
类似qq的头像显示,可以让一张长方形的图片显示圆形,不失真,若图片不存则显示纯颜色背景,也可以加上文字。
Android中经常会遇到对图片进行二次处理,例如加圆角,或者显示圆形图片 实现的效果图: 方法一: 通过第三方框架Glide实现图片显示有圆角,有三种写法如下: 1.1、第一种实现: RequestOptions options = new ...