欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

20行Android代碼寫一個CircleImageView

 更新時間:2016年08月09日 11:48:06   作者:qq_32198277  
這篇文章主要介紹了20行Android代碼寫一個CircleImageView,制作圓形頭像,感興趣的小伙伴們可以參考一下

一提到弄一個圓形的頭像,很多人馬上會想到用CircleIamgeView,但其實自己寫一個也并不難自己寫的部分也就20行代碼,主要是用到PoterDuffXfermode來設(shè)置兩個圖層交集區(qū)域的顯示方式

首先寫一個繼承自ImageView的控件

public class CircleImageView extends ImageView

 然后創(chuàng)建構(gòu)造方法

public CircleImageView(Context context, AttributeSet attrs) {
  super(context, attrs);
 }

之后重寫onDraw方法

@Override
 protected void onDraw(Canvas canvas) {
  //獲得圖片的寬度
  int width=getWidth();
  //獲得圖片的高度
  int height=getHeight();
  //短的二分之一作為半徑
  int radius=height>width?width/2:height/2;

  //重新定義的一個畫布,這一步很關(guān)鍵
  Paint mPaint = new Paint();
  //抗鋸齒
  mPaint.setAntiAlias(true);
  Bitmap bitmap = Bitmap.createBitmap(width,height,
    Bitmap.Config.ARGB_8888);
  Canvas bitmapCanvas = new Canvas(bitmap);
  super.onDraw(bitmapCanvas);

  //圓形的框
  Bitmap cB = Bitmap.createBitmap(width, height,
    Bitmap.Config.ARGB_8888);
  Canvas cCanv = new Canvas(cB);
  //在控件中間畫一個
  cCanv.drawCircle(width/ 2, height/ 2, radius,
    mPaint);

  canvas.drawBitmap(bitmap, 0.0f, 0.0f, mPaint);
  //dst是后畫的圖形
  mPaint.setXfermode(new PorterDuffXfermode(
    PorterDuff.Mode.DST_IN));
  //一定要用之前的畫布,不然會出現(xiàn)邊角是黑色
  bitmapCanvas.drawBitmap(cB, 0.0f, 0.0f, mPaint);

  //給圖形加邊框
  Paint paint =new Paint();
  paint.setAntiAlias(true);
  paint.setStyle(Paint.Style.STROKE);
  paint.setStrokeWidth(5);
  paint.setColor(Color.BLACK);
  canvas.drawCircle(width/ 2, height/ 2, radius,
    paint);

 }

一個簡單的CircleImageView就做成了,你們還可以把邊框弄成一個屬性還有配置相應(yīng)的方法,讓使用者更加方便的使用

它的用法也是和ImageView一模一樣的

<com.example.jkgeekjk.roadtodevelop3.CircleImageView
  android:layout_width="match_parent"
  android:src="@drawable/avastar"
  android:layout_height="match_parent" />

效果圖:

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Android四大組件之Activity詳細(xì)介紹

    Android四大組件之Activity詳細(xì)介紹

    大家好,本篇文章主要講的是Android四大組件之Activity詳解,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • Flutter質(zhì)感設(shè)計之直接輸入

    Flutter質(zhì)感設(shè)計之直接輸入

    這篇文章主要為大家詳細(xì)介紹了Flutter質(zhì)感設(shè)計之直接輸入,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-08-08
  • Android線程實現(xiàn)圖片輪播

    Android線程實現(xiàn)圖片輪播

    這篇文章主要介紹了Android線程實現(xiàn)圖片輪播,初始化3秒更換一次圖片背景,輪換播放,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-12-12
  • Android Flutter實現(xiàn)3D動畫效果示例詳解

    Android Flutter實現(xiàn)3D動畫效果示例詳解

    在Flutter中提供了AnimatedWidget組件用于構(gòu)建可復(fù)用的動畫組件。本文我們用AnimatedWidget來實現(xiàn)組件的3D旋轉(zhuǎn)效果,感興趣的可以了解一下
    2022-03-03
  • Android Fragment使用全解

    Android Fragment使用全解

    這篇文章主要介紹了Android Fragment使用的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)使用Android開發(fā),感興趣的朋友可以了解下
    2021-04-04
  • Android實現(xiàn)精美的聊天界面

    Android實現(xiàn)精美的聊天界面

    這篇文章主要為大家詳細(xì)介紹了Android實現(xiàn)精美的聊天界面,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • Android實現(xiàn)歷史搜索記錄

    Android實現(xiàn)歷史搜索記錄

    這篇文章主要為大家詳細(xì)介紹了Android實現(xiàn)歷史搜索記錄,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • Android中Service服務(wù)詳解(二)

    Android中Service服務(wù)詳解(二)

    這篇文章主要介紹了Android中Service服務(wù),在前面一篇的基礎(chǔ)上進(jìn)一步分析了Android Service的綁定服務(wù)與解綁服務(wù)的相關(guān)使用技巧,需要的朋友可以參考下
    2016-01-01
  • Android編程實現(xiàn)調(diào)用系統(tǒng)分享功能示例

    Android編程實現(xiàn)調(diào)用系統(tǒng)分享功能示例

    這篇文章主要介紹了Android編程實現(xiàn)調(diào)用系統(tǒng)分享功能,結(jié)合實例形式分析了Android實現(xiàn)針對文字、圖片等元素分享功能的相關(guān)操作技巧,需要的朋友可以參考下
    2017-01-01
  • Android中實現(xiàn)OkHttp上傳文件到服務(wù)器并帶進(jìn)度

    Android中實現(xiàn)OkHttp上傳文件到服務(wù)器并帶進(jìn)度

    本篇文章主要介紹了Android中實現(xiàn)OkHttp上傳文件到服務(wù)器并帶進(jìn)度,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-07-07

最新評論