首页

简单实现圆形ImageView双层边框

java

2020-6-28

简单实现圆形ImageView双层边框

package com.example.test;


import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.PorterDuff.Mode;
import android.graphics.PorterDuffXfermode;
import android.graphics.RectF;
import android.graphics.drawable.Drawable;
import android.util.AttributeSet;
import android.widget.ImageView;

public class RoundImageView extends ImageView {
	private Paint paint;
	private Bitmap bmp;

	public RoundImageView(Context context) {
		super(context);
		// TODO Auto-generated constructor stub
		init();
	}

	public RoundImageView(Context context, AttributeSet attrs) {
		super(context, attrs);
		// TODO Auto-generated constructor stub
		init();
	}

	public RoundImageView(Context context, AttributeSet attrs, int defStyle) {
		super(context, attrs, defStyle);
	}

	public void init() {
		paint = new Paint();
		paint.setAntiAlias(true);
		paint.setDither(true);
		paint.setXfermode(new PorterDuffXfermode(Mode.DST_IN));
	}

	@Override
	protected void onDraw(Canvas canvas) {
		int w = getWidth();
		int h = getHeight();
		Drawable drawable = getDrawable();
		int i = canvas.saveLayer(0.0F, 0.0F, w, h, null, 31);
		int j = getWidth();
		int k = getHeight();
		drawable.setBounds(0, 0, j, k);
		drawable.draw(canvas);

		if (bmp == null){
			bmp = createMask();
		}
		canvas.drawBitmap(bmp, 0.0F, 0.0F, paint);
		canvas.restoreToCount(i);

	}

	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;
	}

}

资源下载此资源下载价格为3D币(VIP免费),请先
资源文件列表
test/.classpath , 491
test/.project , 840
test/.settings/org.eclipse.jdt.core.prefs , 177
test/AndroidManifest.xml , 858
test/bin/AndroidManifest.xml , 858
test/bin/classes.dex , 1534712
test/bin/classes/android/support/v7/appcompat/R$anim.class , 629
test/bin/classes/android/support/v7/appcompat/R$attr.class , 5136
test/bin/classes/android/support/v7/appcompat/R$bool.class , 763
test/bin/classes/android/support/v7/appcompat/R$color.class , 594
test/bin/classes/android/support/v7/appcompat/R$dimen.class , 1530
test/bin/classes/android/support/v7/appcompat/R$drawable.class , 5191
test/bin/classes/android/support/v7/appcompat/R$id.class , 2509
test/bin/classes/android/support/v7/appcompat/R$integer.class , 445
test/bin/classes/android/support/v7/appcompat/R$layout.class , 1629
test/bin/classes/android/support/v7/appcompat/R$string.class , 1141
test/bin/classes/android/support/v7/appcompat/R$style.class , 9582
test/bin/classes/android/support/v7/appcompat/R$styleable.class , 6541
test/bin/classes/android/support/v7/appcompat/R.class , 1015
test/bin/classes/com/example/test/BuildConfig.class , 341
test/bin/classes/com/example/test/MainActivity.class , 513
test/bin/classes/com/example/test/R$anim.class , 593
test/bin/classes/com/example/test/R$attr.class , 5100
test/bin/classes/com/example/test/R$bool.class , 727
test/bin/classes/com/example/test/R$color.class , 558
test/bin/classes/com/example/test/R$dimen.class , 1592
test/bin/classes/com/example/test/R$drawable.class , 5349
test/bin/classes/com/example/test/R$id.class , 2547
test/bin/classes/com/example/test/R$integer.class , 409
test/bin/classes/com/example/test/R$layout.class , 1630
test/bin/classes/com/example/test/R$menu.class , 382
test/bin/classes/com/example/test/R$string.class , 1211
test/bin/classes/com/example/test/R$style.class , 9614
test/bin/classes/com/example/test/R$styleable.class , 6689
test/bin/classes/com/example/test/R.class , 891
test/bin/classes/com/example/test/RoundImageView.class , 3191
test/bin/dexedLibs/android-support-v4-e2bfba8908061b12b8568fc8c195532e.jar , 273766
test/bin/dexedLibs/android-support-v7-appcompat-dfcaf605452e36abfbfc4a08f991e911.jar , 150574
test/bin/dexedLibs/appcompat_v7-8c02a49e86c0fdcc9cf2d3d01647c247.jar , 166
test/bin/R.txt , 30901
test/bin/resources.ap_ , 913220
test/bin/res/crunch/drawable-hdpi/ic_launcher.png , 5964
test/bin/res/crunch/drawable-hdpi/kebi.png , 130244
test/bin/res/crunch/drawable-hdpi/kebi_bg.png , 395250
test/bin/res/crunch/drawable-mdpi/ic_launcher.png , 3112
test/bin/res/crunch/drawable-xhdpi/ic_launcher.png , 9355
test/bin/res/crunch/drawable-xxhdpi/ic_launcher.png , 17889
test/bin/test.apk , 1360116
test/gen/android/support/v7/appcompat/R.java , 41022
test/gen/com/example/test/BuildConfig.java , 158
test/gen/com/example/test/R.java , 180864
test/ic_launcher-web.png , 51394
test/libs/android-support-v4.jar , 758727
test/proguard-project.txt , 781
test/project.properties , 607
test/res/drawable-hdpi/ic_launcher.png , 7658
test/res/drawable-hdpi/kebi.png , 132004
test/res/drawable-hdpi/kebi_bg.png , 406088
test/res/drawable-mdpi/ic_launcher.png , 3777
test/res/drawable-xhdpi/ic_launcher.png , 12516
test/res/drawable-xxhdpi/ic_launcher.png , 24777
test/res/drawable/round_corners_layout.xml , 218
test/res/drawable/round_corners_layout_translucent.xml , 220
test/res/layout/activity_main.xml , 1138
test/res/menu/main.xml , 419
test/res/values-v11/styles.xml , 331
test/res/values-v14/styles.xml , 388
test/res/values-w820dp/dimens.xml , 381
test/res/values/dimens.xml , 220
test/res/values/strings.xml , 221
test/res/values/styles.xml , 699
test/src/com/example/test/MainActivity.java , 303
test/src/com/example/test/RoundImageView.java , 1992
没有账号? 忘记密码?

社交账号快速登录