Android圆形的Imageview
来源:互联网 发布:无法访问网络共享 编辑:程序博客网 时间:2024/04/28 21:21
点击查看原文
圆形imageview自定义控件:‘
package com.wangll.widget;import android.content.Context;import android.graphics.Bitmap;import android.graphics.Bitmap.Config;import android.graphics.Canvas;import android.graphics.Paint;import android.graphics.PaintFlagsDrawFilter;import android.graphics.PorterDuff.Mode;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;/** * 圆形的Imageview * * @author wangll * */public class CircularImage extends ImageView { public CircularImage(Context context) { super(context); } public CircularImage(Context context, AttributeSet attrs) { super(context, attrs); } public CircularImage(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } @Override protected void onDraw(Canvas canvas) { Drawable drawable = getDrawable(); if (null != drawable) { Bitmap bitmap = ((BitmapDrawable) drawable).getBitmap(); if (null != bitmap) { Bitmap b = toRoundCorner(bitmap); Paint paint = new Paint(); paint.setAntiAlias(true); paint.setFilterBitmap(true); canvas.drawBitmap(b, new Rect(0, 0, b.getWidth(), b.getHeight()), new Rect(0, 0, this.getWidth(), this.getHeight()), paint); } } else { super.onDraw(canvas); } } private Bitmap toRoundCorner(Bitmap bitmap) { Bitmap outBitmap = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), Config.ARGB_8888); final Paint paint = new Paint(); paint.setAntiAlias(true); paint.setFilterBitmap(true); paint.setColor(0xffffffff); final Rect rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight()); final RectF rectF = new RectF(rect); final float roundPX = bitmap.getWidth() / 2 < bitmap.getHeight() / 2 ? bitmap.getWidth() : bitmap.getHeight(); Canvas canvas = new Canvas(outBitmap); canvas.drawARGB(0, 0, 0, 0); canvas.setDrawFilter(new PaintFlagsDrawFilter(0, Paint.ANTI_ALIAS_FLAG | Paint.FILTER_BITMAP_FLAG)); canvas.drawRoundRect(rectF, roundPX, roundPX, paint); paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN)); canvas.drawBitmap(bitmap, rect, rect, paint); return outBitmap; }}
xml中直接用
<com.wangll.widget.CircularImage android:id="@+id/mImg_photo" android:layout_width="35dp" android:layout_height="35dp" android:scaleType="centerCrop" android:layout_marginRight="9dp" android:layout_centerVertical="true" android:layout_alignParentRight="true" android:src="@drawable/default_head_man" />
图片效果:
4 0
- android圆形的ImageView
- android圆形的ImageView
- Android圆形的ImageView
- android 圆形的ImageView
- android圆形的ImageView
- Android圆形的Imageview
- android圆形的ImageView
- android 圆形头像的Imageview
- Android中圆形的imageView
- android 绘制圆形的ImageView
- android 自定义圆形的ImageView
- android中自定义的圆形ImageView
- Android开源之圆形的ImageView
- android 关于圆形imageview的做法
- Android 圆形 ImageView
- android:圆形 ImageView
- android实现圆形ImageView
- Android圆形imageview实现
- contentprovider的学习实例总结
- Http和Socket连接区别
- 如何更方便的查看Linux内核代码的更新记录
- “! LaTeX source files more than 5 years old!.”解决方案(转)
- 黑马程序员——Object-C基础(二)什么是面向对象?
- Android圆形的Imageview
- 操作系统 IPC
- POJ 2063 Investment(完全背包问题)
- 微信开发小工具
- 线段树 敌兵布阵
- android生成带logo的二维码
- C语言 include <> ""
- 关于mybatis集成spring时,dataSource设置propertyPlaceholder的问题
- oracle常见sql语句优化