最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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é)習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 一文詳解Android中Okio輸入輸出流

    一文詳解Android中Okio輸入輸出流

    在 OkHttp 的源碼中,我們經(jīng)常能看到 Okio 的身影,所以這篇文章文章我們將對Okio進行一個詳細的講解,文中有詳細的代碼示例供大家參考,需要的朋友可以參考下
    2023-07-07
  • Android藍牙服務(wù)查找附近設(shè)備分析探索

    Android藍牙服務(wù)查找附近設(shè)備分析探索

    這篇文章主要介紹了Android藍牙服務(wù)實現(xiàn)查找附近設(shè)備,了解內(nèi)部原理是為了幫助我們做擴展,同時也是驗證了一個人的學(xué)習能力,如果你想讓自己的職業(yè)道路更上一層樓,這些底層的東西你是必須要會的
    2023-01-01
  • Android清空編輯框內(nèi)容功能的實現(xiàn)實例代碼

    Android清空編輯框內(nèi)容功能的實現(xiàn)實例代碼

    本篇文章主要介紹了Android清空編輯框數(shù)據(jù)功能的實現(xiàn)實例代碼,非常具有實用價值,需要的朋友可以參考下。
    2017-03-03
  • Android重復(fù)引用多個場景報錯的問題解決

    Android重復(fù)引用多個場景報錯的問題解決

    本文主要介紹了Android重復(fù)引用多個場景報錯的問題解決,主要介紹了5種情況,具有一定的參考價值,感興趣的可以了解一下
    2024-03-03
  • Android評論功能的實現(xiàn)過程

    Android評論功能的實現(xiàn)過程

    這篇文章為大家詳細介紹了Android評論功能的實現(xiàn)方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-08-08
  • Android 中的 XRecyclerview的使用案例

    Android 中的 XRecyclerview的使用案例

    這篇文章主要介紹了Android 中的 XRecyclerview的使用案例,本文給大家介紹的非常詳細,對大家的學(xué)習或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2024-01-01
  • Android仿eleme點餐頁面二級聯(lián)動列表

    Android仿eleme點餐頁面二級聯(lián)動列表

    本站一直在點外賣,于是心血來潮就像仿餓了么做個站,接下來通過本文給大家介紹android 二級聯(lián)動列表,仿eleme點餐頁面的相關(guān)資料,需要的朋友可以參考下
    2016-10-10
  • Android使用ViewPager實現(xiàn)滾動廣告

    Android使用ViewPager實現(xiàn)滾動廣告

    這篇文章主要為大家詳細介紹了Android使用ViewPager實現(xiàn)滾動廣告,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-11-11
  • Android?Studio實現(xiàn)彈窗設(shè)置

    Android?Studio實現(xiàn)彈窗設(shè)置

    這篇文章主要為大家詳細介紹了Android?Studio實現(xiàn)彈窗設(shè)置,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • Android自動播放Banner圖片輪播效果

    Android自動播放Banner圖片輪播效果

    這篇文章主要介紹了Android自動播放Banner圖片輪播效果的相關(guān)資料,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-07-07

最新評論

志丹县| 大足县| 韩城市| 砀山县| 无极县| 枣强县| 扎鲁特旗| 阳高县| 托里县| 勐海县| 集贤县| 永顺县| 红原县| 龙胜| 乐山市| 景泰县| 十堰市| 衡东县| 旅游| 山阳县| 镶黄旗| 通化县| 外汇| 宁蒗| 梅河口市| 巴彦县| 鄂伦春自治旗| 公安县| 永新县| 山西省| 兴宁市| 合肥市| 昭觉县| 理塘县| 关岭| 深圳市| 漳州市| 六安市| 茶陵县| 井陉县| 武陟县|