[带效果图]圆角矩形图片自定义控件
2016-12-05 18:59
162 查看
效果图:
常用的属性类型:
使用方法:
values/attrs:
代码:
常用的属性类型:
属性类型名称 | 属性类型 |
---|---|
color | 颜色 |
boolean | 布尔类型 |
string | 文本类型 |
folat | 小数 |
dimension | 尺寸类型(如100dp) |
reference | 引用类型(如@String) |
reference|color | 引用或者颜色 |
<com.yt.utils.RoundRectImageView android:layout_width="match_parent" android:layout_height="match_parent" app:chamfer="2" />
values/attrs:
<declare-styleable name="RoundRectImageView"> <attr name="chamfer" format="integer" /> </declare-styleable>
代码:
package com.yt.utils; import android.content.Context; import android.content.res.TypedArray; import android.graphics.Bitmap; import android.graphics.Canvas; import android.graphics.Paint; import android.graphics.PorterDuff; import android.graphics.PorterDuffXfermode; import android.graphics.Rect; import android.graphics.RectF; import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.Drawable; import android.util.AttributeSet; import android.widget.ImageView; import com.miu.apps.miss.R; /** * yt * Created by Administrator on 2016/12/5. * 圆角图片 的自定义控件 */ public class RoundRectImageView extends ImageView { private Paint paint; private int chamfer; public RoundRectImageView(Context context) { this(context,null); } public RoundRectImageView(Context context, AttributeSet attrs) { this(context, attrs,0); } public RoundRectImageView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); TypedArray typedArray = context.obtainStyledAttributes(attrs, R.styleable.RoundRectImageView); chamfer = typedArray.getInteger(R.styleable.RoundRectImageView_chamfer, 0); //获取倒角幅度 paint = new Paint(); } /** * 绘制圆角矩形图片 */ @Override protected void onDraw(Canvas canvas) { Drawable drawable = getDrawable(); if (null != drawable) { Bitmap bitmap = ((BitmapDrawable) drawable).getBitmap(); Bitmap b = getRoundBitmap(bitmap, chamfer); 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); } } /** * 获取圆角矩形图片方法 * @param bitmap * @param roundPx 倒角幅度 * @return Bitmap */ private Bitmap getRoundBitmap(Bitmap bitmap, int roundPx) { Bitmap output = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), Bitmap.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); int x = bitmap.getWidth(); canvas.drawRoundRect(rectF, roundPx, roundPx, paint); pa 4000 int.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN)); canvas.drawBitmap(bitmap, rect, rect, paint); return output; } }
相关文章推荐
- IOS用CGContextRef画各种图形(文字、圆、直线、弧线、矩形、扇形、椭圆、三角形、圆角矩形、贝塞尔曲线、图片)
- ps制作圆角矩形图标或者图片
- 利用“Nifty Corners Cube”不用css样式表和背景图片实现圆角矩形,超简洁
- (转) IOS用CGContextRef画各种图形(文字、圆、直线、弧线、矩形、扇形、椭圆、三角形、圆角矩形、贝塞尔曲线、图片)
- IOS用CGContextRef画各种图形(文字、圆、直线、弧线、矩形、扇形、椭圆、三角形、圆角矩形、贝塞尔曲线、图片)
- iOS用CGContextRef画各种图形(文字、圆、直线、弧线、矩形、扇形、椭圆、三角形、圆角矩形、贝塞尔曲线、图片)
- Glide加载图片显示圆形和圆角矩形图片
- IOS用CGContextRef画各种图形(文字、圆、直线、弧线、矩形、扇形、椭圆、三角形、圆角矩形、贝塞尔曲线、图片)
- 自定义控件,圆角矩形(drawRoundRect)
- IOS用CGContextRef画各种图形(文字、圆、直线、弧线、矩形、扇形、椭圆、三角形、圆角矩形、贝塞尔曲线、图片)
- Android自定义ImageView实现图片圆形 ,椭圆和矩形圆角显示
- 图片圆形,矩形圆角
- (产品技术)Axure7.0圆角矩形、圆角图片
- IOS用CGContextRef画各种图形(文字、圆、直线、弧线、矩形、扇形、椭圆、三角形、圆角矩形、贝塞尔曲线、图片)
- 使用imageMagick 制作圆角矩形和图片加水印
- IOS用CGContextRef画各种图形(文字、圆、直线、弧线、矩形、扇形、椭圆、三角形、圆角矩形、贝塞尔曲线、图片)
- CSS实例(八):不用图片实现宽度、高度自定的圆角矩形
- 在Android中绘制圆角矩形图片
- IOS用CGContextRef画各种图形(文字、圆、直线、弧线、矩形、扇形、椭圆、三角形、圆角矩形、贝塞尔曲线、图片)
- IOS用CGContextRef画各种图形(文字、圆、直线、弧线、矩形、扇形、椭圆、三角形、圆角矩形、贝塞尔曲线、图片)