Android實現圓形圖片效果
更新時間:2021年06月24日 12:08:49 作者:JH學編程
這篇文章主要為大家詳細介紹了Android實現圓形圖片效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
本文實例為大家分享了Android實現圓形圖片效果的具體代碼,供大家參考,具體內容如下

創(chuàng)建RoundPicture.java文件
在src/main/java/XX包下新建RoundPicture.java


寫入RoundPicture.java文件
復制下方代碼,并引入類即可
public class RoundPicture extends androidx.appcompat.widget.AppCompatImageView {
private Paint paint;
public RoundPicture(Context context) {
this(context, null);
}
public RoundPicture(Context context, AttributeSet attrs) {
this(context, attrs, 0);
}
public RoundPicture(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
paint = new Paint();
}
// 繪制圓形圖片
@Override
protected void onDraw(Canvas canvas) {
Drawable drawable = getDrawable();
if (null != drawable) {
Bitmap bitmap = ((BitmapDrawable) drawable).getBitmap();
Bitmap b = getCircleBitmap(bitmap, 14);
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);
}
}
// 獲取圓形圖片方法
private Bitmap getCircleBitmap(Bitmap bitmap, int pixels) {
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());
paint.setAntiAlias(true);
canvas.drawARGB(0, 0, 0, 0);
paint.setColor(color);
int x = bitmap.getWidth();
canvas.drawCircle(x / 2, x / 2, x / 2, paint);
paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN));
canvas.drawBitmap(bitmap, rect, rect, paint);
return output;
}
}
調用RoundPicture創(chuàng)建圓形圖片
只需在.xml文件中插入圖片處,將控件名改為
< XX.RoundPicture 并引入圖片即可
<com.example.jh_android.RoundPicture
android:id="@+id/iv"
android:layout_height="200dp"
android:layout_width="200dp"
android:layout_marginTop="150dp"
android:layout_centerHorizontal="true"
android:src="@drawable/head"
/>
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
Android Framework Application Framework層簡單介紹
這篇文章主要介紹了 Android Framework Application Framework層簡單介紹的相關資料,需要的朋友可以參考下2016-11-11
詳解android 中animation-list 動畫的應用
本篇文章主要介紹了詳解android 中animation-list 動畫的應用,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-12-12

