显示圆头像
来源:互联网 发布:程序员怎么找兼职 编辑:程序博客网 时间:2024/05/22 12:56
XML 布局文件调用:
<com.zm.bala.utils.CircularImage android:id="@+id/cover_user_photo" android:layout_width="48dp" android:layout_height="48dp" android:layout_centerInParent="true" android:layout_alignParentLeft="true" android:layout_marginLeft="8dp" android:src="@drawable/default_face_50" />
类文件:
package com.zm.bala.utils;import android.content.Context;import android.graphics.Bitmap;import android.graphics.Canvas;import android.graphics.Paint;import android.graphics.RectF;import android.util.AttributeSet;/** * 圆形头像 实现 * @author Administrator * */public class CircularImage extends MaskedImage { public CircularImage(Context paramContext) { super(paramContext); } public CircularImage(Context paramContext, AttributeSet paramAttributeSet) { super(paramContext, paramAttributeSet); } public CircularImage(Context paramContext, AttributeSet paramAttributeSet, int paramInt) { super(paramContext, paramAttributeSet, paramInt); } public Bitmap createMask() { int i = getWidth(); int j = getHeight(); Bitmap.Config localConfig = Bitmap.Config.ARGB_8888; Bitmap localBitmap = Bitmap.createBitmap(i, j, localConfig); Canvas localCanvas = new Canvas(localBitmap); Paint localPaint = new Paint(1); localPaint.setColor(-16777216); float f1 = getWidth(); float f2 = getHeight(); RectF localRectF = new RectF(0.0F, 0.0F, f1, f2); localCanvas.drawOval(localRectF, localPaint); return localBitmap; } }
package com.zm.bala.utils;import android.content.Context;import android.graphics.Bitmap;import android.graphics.Canvas;import android.graphics.Paint;import android.graphics.PorterDuff;import android.graphics.PorterDuffXfermode;import android.graphics.Xfermode;import android.graphics.drawable.Drawable;import android.util.AttributeSet;import android.widget.ImageView;/** * 圆形头像 抽象 * @author Administrator * */public abstract class MaskedImage extends ImageView { private static final Xfermode MASK_XFERMODE; private Bitmap mask; private Paint paint; static { PorterDuff.Mode localMode = PorterDuff.Mode.DST_IN; MASK_XFERMODE = new PorterDuffXfermode(localMode); } public MaskedImage(Context paramContext) { super(paramContext); } public MaskedImage(Context paramContext, AttributeSet paramAttributeSet) { super(paramContext, paramAttributeSet); } public MaskedImage(Context paramContext, AttributeSet paramAttributeSet, int paramInt) { super(paramContext, paramAttributeSet, paramInt); } public abstract Bitmap createMask(); protected void onDraw(Canvas paramCanvas) { Drawable localDrawable = getDrawable(); if (localDrawable == null) return; try { if (this.paint == null) { Paint localPaint1 = new Paint(); this.paint = localPaint1; this.paint.setFilterBitmap(false); Paint localPaint2 = this.paint; Xfermode localXfermode1 = MASK_XFERMODE; @SuppressWarnings("unused") Xfermode localXfermode2 = localPaint2.setXfermode(localXfermode1); } float f1 = getWidth(); float f2 = getHeight(); int i = paramCanvas.saveLayer(0.0F, 0.0F, f1, f2, null, 31); int j = getWidth(); int k = getHeight(); localDrawable.setBounds(0, 0, j, k); localDrawable.draw(paramCanvas); if ((this.mask == null) || (this.mask.isRecycled())) { Bitmap localBitmap1 = createMask(); this.mask = localBitmap1; } Bitmap localBitmap2 = this.mask; Paint localPaint3 = this.paint; paramCanvas.drawBitmap(localBitmap2, 0.0F, 0.0F, localPaint3); paramCanvas.restoreToCount(i); return; } catch (Exception localException) { StringBuilder localStringBuilder = new StringBuilder() .append("Attempting to draw with recycled bitmap. View ID = "); System.out.println("localStringBuilder=="+localStringBuilder); } } }
0 0
- 显示圆头像
- Android 圆形头像显示
- WPF圆形头像显示
- 地图显示用户头像
- 圆形头像显示实现
- 头像显示菜单
- 【ECSHOP插件】ECSHOP会员头像,上传头像评论显示头像
- MSN不显示头像怎么办?
- discuz 3 头像显示不成功
- 百度地图显示自定义头像
- 使用BitmapShader显示圆形头像
- echarts 柱状图头部显示头像
- 更换头像 鼠标移动显示更改和删除 头像
- CSDN设置头像后,还是显示原来的头像
- 实现显示圆形头像及选择相册相机修改头像
- 注册用户选择头像及时显示啦。
- QQ2009无法显示好友自定义头像
- 如何在WordPress中显示自定义头像
- 远程桌面 不能粘贴文本 的解决办法
- poj 3981 字符串替换
- 入门训练 Fibonacci数列
- java初始化顺序
- 蓝桥杯--结点选择
- 显示圆头像
- hdu 3400 Line belt
- 【KM匹配】 HDOJ 2255 奔小康赚大钱
- ListView -- BaseAdapter的使用
- oracle闪回功能
- ajax异步刷新
- C 算法精介----二叉树-->分析与实现
- 得到系统事务的相关信息
- AndroidFramework之Volley详细解析(一)