修改交友布局
This commit is contained in:
@@ -0,0 +1,80 @@
|
||||
package com.xscm.moduleutil.widget;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
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;
|
||||
|
||||
/**
|
||||
* 圆形头像
|
||||
*/
|
||||
@SuppressLint("AppCompatCustomView")
|
||||
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, Canvas.ALL_SAVE_FLAG);
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user