Android實(shí)現(xiàn)圓形圖片效果
本文實(shí)例為大家分享了Android實(shí)現(xiàn)圓形圖片效果的具體代碼,供大家參考,具體內(nèi)容如下

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


寫入RoundPicture.java文件
復(fù)制下方代碼,并引入類即可
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;
}
}
調(diào)用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"
/>
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Android裁剪圖片為圓形圖片的實(shí)現(xiàn)原理與代碼
- Android中Glide加載圓形圖片和圓角圖片實(shí)例代碼
- Android實(shí)現(xiàn)圓形圖片的兩種方式
- 詳解Android中Glide與CircleImageView加載圓形圖片的問題
- 分享一個(gè)Android設(shè)置圓形圖片的特別方法
- Android編程繪制圓形圖片的方法
- Android自定義View實(shí)現(xiàn)旋轉(zhuǎn)的圓形圖片
- android繪制圓形圖片的兩種方式示例
- Android實(shí)現(xiàn)圓形圖片或者圓角圖片
- Android使用自定義ImageView實(shí)現(xiàn)圓形圖片效果
相關(guān)文章
Android應(yīng)用實(shí)現(xiàn)點(diǎn)擊按鈕震動(dòng)
這篇文章主要為大家詳細(xì)介紹了Android應(yīng)用實(shí)現(xiàn)點(diǎn)擊按鈕震動(dòng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-09-09
Android開發(fā)全局音量調(diào)整的實(shí)現(xiàn)方式詳解
這篇文章主要為大家介紹了Android開發(fā)全局音量調(diào)整的實(shí)現(xiàn)方式詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-11-11
Android AIDL實(shí)現(xiàn)兩個(gè)APP間的跨進(jìn)程通信實(shí)例
這篇文章主要為大家詳細(xì)介紹了Android AIDL實(shí)現(xiàn)兩個(gè)APP間的跨進(jìn)程通信實(shí)例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-04-04
android實(shí)現(xiàn)按鈕獲取焦點(diǎn)延遲加載
這篇文章主要為大家詳細(xì)介紹了android實(shí)現(xiàn)按鈕獲取焦點(diǎn)延遲加載,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-09-09
Android Framework Application Framework層簡(jiǎn)單介紹
這篇文章主要介紹了 Android Framework Application Framework層簡(jiǎn)單介紹的相關(guān)資料,需要的朋友可以參考下2016-11-11
Android基于Xposed修改微信運(yùn)動(dòng)步數(shù)實(shí)例
這篇文章主要介紹了Android基于Xposed修改微信運(yùn)動(dòng)步數(shù)實(shí)例,需要的朋友可以參考下2017-06-06
Android中實(shí)現(xiàn)EditText密碼顯示隱藏的方法
這篇文章主要介紹了Android中實(shí)現(xiàn)EditText密碼顯示隱藏的方法,需要的朋友可以參考下2017-01-01
詳解android 中animation-list 動(dòng)畫的應(yīng)用
本篇文章主要介紹了詳解android 中animation-list 動(dòng)畫的應(yīng)用,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-12-12
Android?內(nèi)存優(yōu)化知識(shí)點(diǎn)梳理總結(jié)
這篇文章主要介紹了Android?內(nèi)存優(yōu)化知識(shí)點(diǎn)梳理總結(jié),Android?操作系統(tǒng)給每個(gè)進(jìn)程都會(huì)分配指定額度的內(nèi)存空間,App?使用內(nèi)存來進(jìn)行快速的文件訪問交互,長(zhǎng)時(shí)間如此便需要優(yōu)化策略,文章分享優(yōu)化知識(shí)點(diǎn)總結(jié),需要的朋友可以參考一下2022-06-06

