[带效果图]圆角矩形图片自定义控件
来源:互联网 发布:网络屏蔽怎么解除 编辑:程序博客网 时间:2024/04/29 19:08
效果图:
常用的属性类型:
使用方法:
<com.yt.utils.RoundRectImageView android:layout_width="match_parent" android:layout_height="match_parent" app:chamfer="2" />
<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); paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN)); canvas.drawBitmap(bitmap, rect, rect, paint); return output; }}
1 0
- [带效果图]圆角矩形图片自定义控件
- 自定义圆角矩形控件
- 自定义圆角矩形图片/圆形图片
- 自定义控件,圆角矩形(drawRoundRect)
- Android自定义圆角矩形图片ImageView
- 自定义圆形或者圆角矩形图片
- 带图片的textView自定义控件
- 自定义控件---带边框的圆形图片
- android自定义控件Button 带图片文字
- Android 自定义 RoundImageView 实现圆角矩形或圆形图片
- Android开发之自定义圆角矩形图片ImageView
- Android 自定义Drawable 实现圆角矩形和圆形图片
- 自定义ImageView——圆角 圆形 矩形 图片控件
- 自定义view圆角图片带边框
- Android自定义ViewGroup(一)——带箭头的圆角矩形菜单
- 自定义控件-圆角图片简单实现
- 自定义圆角矩形、圆形
- 自定义圆角矩形---BitmapShader
- usaco2.1.3 Sorting a Three-Valued Sequence
- Java Resource读文件小结
- mysql 索引总结----索引算法
- Metron学习2_Metron Installation on an Ambari-Managed Cluster
- 最小堆的构建(C++实现)--算法拾遗(1)
- [带效果图]圆角矩形图片自定义控件
- 分类默认选中商品,保留值,更改
- 阶段学习总结
- python+微博API实现微博登录+发布微博
- bzoj2118 墨墨的等式
- 享受孤独
- 微信开发整合日记(6)
- js判断未定义、数字、字符串等
- mysql:在命令行执行sql语句