package org.fireking.app.moon.ui; import org.fireking.app.moon.R; import android.content.Context; import android.content.res.TypedArray; import android.graphics.Bitmap; import android.graphics.Bitmap.Config; import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.graphics.PorterDuff.Mode; import android.graphics.PorterDuffXfermode; import android.graphics.Rect; import android.graphics.RectF; import android.util.AttributeSet; import android.widget.ImageView; /** * 自定义view,实现显示圆角图片,圆角大小可以通过属性进行定制 * * @author 破 * */ public class UserMiniPhoto extends ImageView { Context context; TypedArray radiasSize; public UserMiniPhoto(Context context, AttributeSet attrs) { super(context, attrs); this.context = context; // 使用自定义属性 radiasSize = context.obtainStyledAttributes(attrs, R.styleable.NewMyElement); // 获取系统view的属性 int src = attrs.getAttributeResourceValue( "http://schemas.android.com/apk/res/android", "src", 0); // 获取系统属性使用的资源,并转化为bitmap Bitmap mBitmap = BitmapFactory.decodeStream(getResources() .openRawResource(src)); // 将图片切成圆角 Bitmap desc = CornerBitmap(mBitmap, radiasSize.getDimension(R.styleable.NewMyElement_radiasSize, 5)); // 将修改后的图片设置进去到组件中 super.setImageBitmap(desc); } // 对图片进行圆角处理 public Bitmap CornerBitmap(Bitmap mBitmap, float rx) { Bitmap temp = null; temp = Bitmap.createBitmap(mBitmap.getWidth(), mBitmap.getHeight(), Config.ARGB_8888); Canvas mCanvas = new Canvas(temp); Paint mPaint = new Paint(); Rect mRect = new Rect(0, 0, mBitmap.getWidth(), mBitmap.getHeight()); RectF mRectF = new RectF(mRect); mPaint.setAntiAlias(true); mCanvas.drawARGB(0, 0, 0, 0); mPaint.setColor(Color.RED); // 进行绘制圆角 mCanvas.drawRoundRect(mRectF, rx, rx, mPaint); // 设置新加图层和原图层的关系,详解见 // http://blog.csdn.net/oic8822882/article/details/6906768 mPaint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN)); mCanvas.drawBitmap(mBitmap, mRect, mRect, mPaint); return temp; } } //这里是自定义的属性,使用上和普通属性一样 //属性使用的时候需要自定义一个namespace,在定义layout中加入 xmlns:fireking="http://schemas.android.com/apk/res/org.fireking.app.moon" //使用
- 浏览: 4397 次
- 性别:
- 来自: 北京
相关推荐
Android 自定义imageview实现图片圆角,圆形图片,椭圆形图片,不需要添加依赖,简洁实现
android自定义ImageView,圆角和圆形,抗锯齿.亲测可用。直接拷贝代码就行。
本文实例为大家分享了android自定义imageview实现圆角图片的具体代码,供大家参考,具体内容如下 自定义图片的属性,对图片进行圆角切割 实现效果图: (1)在activity_main.xml文件布局,非常简单 <?xml ...
自定义圆角图片,能设置任意圆角角度显示.翻遍用户的开发和使用
Android高级应用源码-ImageView 自定义控件,实现圆角控件图片功能.zip
android ImageView网络图片加载、动态设置尺寸、圆角(绝对好用)
android自定义圆角imageView
android中的ImageView只能显示矩形的图片,这样一来不能满足我们其他的需求,比如要显示圆角矩形的图片,这个时候,我们就需要自定义ImageView了,其原理就是首先获取到图片的Bitmap,然后进行裁剪对应的圆角矩形的...
实现了圆形/圆角图片imageview,并包含示例
android 圆角 自定义 ImageView 支持网络下载,模拟器显示会有问题,真机没问题
源码参考,欢迎下载
自定义圆角图片Demo,自定义圆角ImageView以及锯齿的处理
一个超轻量级(不到400行代码),功能强大的自定义Imageview控件,支持长方形,正方形,圆角矩形,圆形,三角形,棱形,任意正多边形,边框,边角装饰。
Android自定义聊天气泡形状ImageView可设置箭头位置(左或右),图片圆角大小(属性在自定义attr.xml里面)
Android自定义ImageView,方角,圆角头像,只要改代码的一处地方即可根据自己的需求来设置图片的圆角的大小
android开发中常常涉及到一种情况,就是将用户上传的图片以圆形样式显示,但是用户上传的图片可以有直角、圆角、正方形等多种不确定样式,这时就用到了自定义ImageView控件,在安卓客户端使接收到的图片全部以圆形...
一分也是爱,拿走不谢!
demo是一个自定义的ImageView,包含了圆角图片和圆形图片