Android自定义ImageView,方角,圆角头像(可根据自己的需求来设定头像的圆角或者方角的大小)
来源:互联网 发布:免费手机安装窃听软件 编辑:程序博客网 时间:2024/06/07 08:22
直接上代码,只要改代码的一处地方即可根据自己的需求来设置图片的圆角的大小
在xml中引用自定义的ImageView即可
import android.annotation.SuppressLint;import android.content.Context;import android.graphics.Bitmap;import android.graphics.Bitmap.Config;import android.graphics.Canvas;import android.graphics.Paint;import android.graphics.PixelFormat;import android.graphics.PorterDuff.Mode;import android.graphics.PorterDuffXfermode;import android.graphics.Rect;import android.graphics.RectF;import android.graphics.drawable.Drawable;import android.util.AttributeSet;import android.widget.ImageView;/*** @ClassName: XCRoundRectImageView* @Description: 自定义控件实现方角图片* @author 菲尔普斯* @date 2015-1-5 下午3:59:28**/public class XCRoundRectImageView extends ImageView { private Paint paint; public XCRoundRectImageView(Context context) { this(context, null); } public XCRoundRectImageView(Context context, AttributeSet attrs) { this(context, attrs, 0); } public XCRoundRectImageView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); paint = new Paint(); } /** * 绘制圆角矩形图片 * * @author caizhiming */ @SuppressLint("DrawAllocation") @Override protected void onDraw(Canvas canvas) { Drawable drawable = getDrawable(); if (drawable != null) { Bitmap bitmap = drawableToBitmap(drawable); Bitmap b = getRoundBitmap(bitmap,360); //360为一个圆形!改变这个值,可以根据自己的需求来设定 final Rect rectSrc = new Rect(0, 0, b.getWidth(), b.getHeight()); final Rect rectDest = new Rect(0, 0, getWidth(), getHeight()); paint.reset(); canvas.drawBitmap(b, rectSrc, rectDest, paint); } else { super.onDraw(canvas); } } /*** * @Title: drawableToBitmap * @Description: Drawble转为bitmap * @param @param drawable * @param @return * @return Bitmap * @throws */ public static Bitmap drawableToBitmap(Drawable drawable) { Bitmap bitmap; if (drawable.getIntrinsicWidth() <= 0 || drawable.getIntrinsicHeight() <= 0) { bitmap = Bitmap.createBitmap(100, 100, drawable.getOpacity() != PixelFormat.OPAQUE ? Bitmap.Config.ARGB_8888 : Bitmap.Config.RGB_565); } else { bitmap = Bitmap.createBitmap(drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight(), drawable.getOpacity() != PixelFormat.OPAQUE ? Bitmap.Config.ARGB_8888 : Bitmap.Config.RGB_565); } Canvas canvas = new Canvas(bitmap); drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight()); drawable.draw(canvas); return bitmap; } /** * 获取圆角矩形图片方法 * * @param bitmap * @param roundPx * ,一般设置成20 * @return Bitmap * @author caizhiming */ private Bitmap getRoundBitmap(Bitmap bitmap, int roundPx) { 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()); final RectF rectF = new RectF(rect); paint.setAntiAlias(true); canvas.drawARGB(0, 0, 0, 0); paint.setColor(color); canvas.drawRoundRect(rectF, roundPx, roundPx, paint); paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN)); canvas.drawBitmap(bitmap, rect, rect, paint); return output; }}
0 0
- Android自定义ImageView,方角,圆角头像(可根据自己的需求来设定头像的圆角或者方角的大小)
- 圆角头像的制作
- 圆角头像的实现
- 圆角头像的实现
- 圆角头像的实现
- 圆角头像的处理
- 【Android】自定义圆形ImageView(圆形头像 可指定大小)
- 【Android】自定义圆形ImageView(圆形头像 可指定大小)
- 【android】 圆角头像
- android 圆形头像的Imageview
- Android 自定义圆角图片/头像
- 自定义头像圆角控件
- 圆形的imageview,常用来显示头像
- 设置头像圆角
- 圆角头像
- 让我的头像圆起来--Android之圆头像
- 让我的头像圆起来--Android之圆头像 .
- 让我的头像圆起来--Android之圆头像
- shell脚本 自定义传入参数选项
- WebMvcConfigurerAdapter的用法
- C++调用webservice
- IOS UIWebView与Javascript之间的交互
- The Bonus Salary! (poj 3762 离散化+最小费用流)
- Android自定义ImageView,方角,圆角头像(可根据自己的需求来设定头像的圆角或者方角的大小)
- git fetch 同步太多不需要的
- Hibernate-简介
- (15/09/14)重新开始
- Java序列化框架性能比较
- c++primer plus 第九章-名称空间
- hdu1421经典dp
- 网络APP编写------云服务器用Bmob开发的
- //获取lable高度 并调整行间距等功能