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
一个`CircleImageView`类,用于显示圆形图片;以及相关的布局文件,如`activity_circle_crop.xml`,定义了裁剪界面的布局。 7. **用户体验优化** - 添加预览功能:用户可以在裁剪过程中实时预览裁剪结果,增强交互...
在Android开发中,有时我们需要创建一个显示圆形图片的控件,比如用户头像。自定义圆形图片控件能够提供更好的视觉效果,使界面更加美观。本文将深入探讨如何在Android中实现这一功能。 首先,我们需要了解Android...
在Android应用开发中,创建和使用圆形图片控件是一个常见的需求,特别是在用户界面设计中,如用户头像、社交应用的个人资料图片等。本文将深入探讨如何在Android项目中实现这种效果,主要关注"android圆形图片控件...
在Android开发中,有时我们需要对显示的图片进行特殊处理,比如让图片呈现圆角或完全圆形。本知识点将深入探讨如何在Android应用中完美实现图片的圆角和圆形效果。 首先,我们来看如何实现图片的圆角效果。Android...
在Android开发中,为了使应用界面更具...总的来说,这个示例项目提供了一种在Android应用中实现圆角或圆形图片的方法,开发者可以通过学习这个示例,掌握自定义视图以及图形绘制的基本技巧,提升应用的视觉设计能力。
要创建圆形图片,最常用的方法是使用`BitmapShader`和`Paint`类。`BitmapShader`可以将Bitmap应用于画笔的着色器,而`Paint`则用于绘制。以下是一个简单的示例: ```java public static Bitmap ...
显示圆形图片,最简单的方法是使用`android.graphics.drawable.RoundRectShape`和`GradientDrawable`。创建一个圆形的`ShapeDrawable`,然后将其设置为ImageView的背景。或者,可以使用`ImageView`的`android:...
本教程将详细讲解如何创建一个简单且实用的圆形图片裁剪框。 首先,我们需要理解Android中的图像处理基本概念。Android系统提供了丰富的图像处理API,例如Bitmap类用于表示位图图像,Canvas类用于绘制图像,以及...
在Android开发中,有时我们需要将图片显示为圆形,例如在头像展示或者设计有特定视觉效果的界面时。实现这个功能通常涉及到对图像进行裁剪或应用遮罩。本篇文章将详细探讨如何在Android中设置图片的圆形遮罩,以及...
在Android开发中,有时我们需要将普通的矩形图片裁剪成圆形,以适应各种设计需求,例如用户头像、应用图标等。本Demo主要探讨如何在Android中实现这一功能,涉及的知识点包括图片处理、自定义View以及绘图API的使用...
本示例"android圆形图片实现Demo"将详细介绍如何在Android应用程序中创建圆形图片。这个Demo是实现这一功能的一个实践案例,下面我们将深入探讨其背后的实现原理和步骤。 首先,我们可以通过自定义一个ImageView的...
最后,裁剪后的圆形图片可以保存到本地或者直接显示在界面上。如果是保存,可以使用`Bitmap.compress()`方法,选择合适的格式(如JPEG或PNG)。 总结起来,"android圆形图片裁剪"涉及到的知识点包括: 1. Android...
这里可以使用`Bitmap.createBitmap()`和`BitmapShader`来实现圆形图片的裁剪。 6. **存储图片** - 将裁剪后的圆形图片保存到设备上。可以使用`MediaStore.Images.Media.insertImage()`或`Bitmap.CompressFormat....
本项目是一个仿百度网页音乐播放器圆形图片转圈播放效果,效果可以看一下这里http://www.baidu.com/s?wd=%E9%A3%9E%E5%BE%97%E6%9B%B4%E9%AB%98,主要是自定义了一个圆形ImageView,可以设置最多两个宽度不同且颜色...