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

Android中使用Bitmap類將矩形圖片轉為圓形的方法

 更新時間:2016年03月19日 16:42:02   作者:神神的蝸牛  
這篇文章主要介紹了Android中使用Bitmap類將矩形圖片轉為圓形的方法,同時文中也介紹了如何利用矩形直接來畫圓角,需要的朋友可以參考下

一般要做正圓形圖片,只能是正方形的基礎上才能實現,否則就變成橢圓了,下面說說如何使長方形的圖片生成正圓形圖片
廢話不多說,沒圖沒真相,先上圖吧:
原圖:

2016319163739626.jpg (480×800)

變成正圓后:

2016319163810889.jpg (480×800)

下面上代碼:

public static Bitmap makeRoundCorner(Bitmap bitmap) 
{ 
  int width = bitmap.getWidth(); 
  int height = bitmap.getHeight(); 
  int left = 0, top = 0, right = width, bottom = height; 
  float roundPx = height/2; 
  if (width > height) { 
    left = (width - height)/2; 
    top = 0; 
    right = left + height; 
    bottom = height; 
  } else if (height > width) { 
    left = 0; 
    top = (height - width)/2; 
    right = width; 
    bottom = top + width; 
    roundPx = width/2; 
  } 
  ZLog.i(TAG, "ps:"+ left +", "+ top +", "+ right +", "+ bottom); 
 
  Bitmap output = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888); 
  Canvas canvas = new Canvas(output); 
  int color = 0xff424242; 
  Paint paint = new Paint(); 
  Rect rect = new Rect(left, top, right, bottom); 
  RectF rectF = new RectF(rect); 
 
  paint.setAntiAlias(true); 
  canvas.drawARGB(0, 0, 0, 0); 
  paint.setColor(color); 
  canvas.drawRoundRect(rectF, roundPx, roundPx, paint); 
  paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN)); 
  canvas.drawBitmap(bitmap, rect, rect, paint); 
  return output; 
} 


下面再解釋下:
由于圖片是長方形,所以圖片的 寬、高 肯定會有一邊要小于另一邊,要生成正方形就已最小的一邊為基準,再來裁切定位另一邊的顯示范圍
至于圓角的半徑則是正方形寬的一半,用過 CSS 的就知道,畫圓很方便 border-radius設為 50% 就可以了,都是一個道理
android 的 UI 真是太繁瑣了

矩形畫個圓角的代碼:

public static Bitmap makeRoundCorner(Bitmap bitmap, int px) 
{ 
  int width = bitmap.getWidth(); 
  int height = bitmap.getHeight(); 
  Bitmap output = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888); 
  Canvas canvas = new Canvas(output); 
  int color = 0xff424242; 
  Paint paint = new Paint(); 
  Rect rect = new Rect(0, 0, width, height); 
  RectF rectF = new RectF(rect); 
  paint.setAntiAlias(true); 
  canvas.drawARGB(0, 0, 0, 0); 
  paint.setColor(color); 
  canvas.drawRoundRect(rectF, px, px, paint); 
  paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN)); 
  canvas.drawBitmap(bitmap, rect, rect, paint); 
  return output; 
} 

相關文章

  • Android中極簡的js與java的交互庫(SimpleJavaJsBridge)

    Android中極簡的js與java的交互庫(SimpleJavaJsBridge)

    本文主要介紹了Android中極簡的js與java的交互庫--SimpleJavaJsBridge,它可以讓js與java之間的通信更簡單。 具有很好的參考價值,下面跟著小編一起來看下吧
    2017-01-01
  • Android輸入框添加emoje表情圖標的實現代碼

    Android輸入框添加emoje表情圖標的實現代碼

    這篇文章主要為大家詳細介紹了Android輸入框添加emoje表情圖標的實現代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-11-11
  • Android數據庫操作工具類分享

    Android數據庫操作工具類分享

    這篇文章主要為大家詳細介紹了Android數據庫操作工具類的相關代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • Android系統(tǒng)實現DroidPlugin插件機制

    Android系統(tǒng)實現DroidPlugin插件機制

    這篇文章主要為大家詳細介紹了Android系統(tǒng)上實現DroidPlugin插件機制,可以在無需安裝、修改的情況下運行APK文件,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-01-01
  • Android中監(jiān)聽判斷網絡連接狀態(tài)的方法

    Android中監(jiān)聽判斷網絡連接狀態(tài)的方法

    這篇文章主要介紹了Android中監(jiān)聽判斷網絡連接狀態(tài)的方法,介紹了是否有網絡連接判斷、連接的類型和監(jiān)聽網絡狀態(tài)的方法,需要的朋友可以參考下
    2014-06-06
  • Kotlin協(xié)程基礎元素梳理分析

    Kotlin協(xié)程基礎元素梳理分析

    這篇文章我們來講協(xié)程的基礎元素,畢竟協(xié)程是一個很強大的設計模式,深入了解需要花很多的時間,我們先從簡單開始,其實學會了簡單的使用,基本已經可以滿足我們平時的開發(fā)需要了,話不多說,開始
    2022-11-11
  • Android PopupWindow實現左側彈窗效果

    Android PopupWindow實現左側彈窗效果

    這篇文章主要為大家詳細介紹了Android PopupWindow實現左側彈窗效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • 使用Timer實現網頁勻速加載的進度條樣式

    使用Timer實現網頁勻速加載的進度條樣式

    這篇文章主要介紹了使用Timer實現網頁勻速加載的進度條樣式,在使用WebView加載網頁時有時候網速等原因加載比較慢時,影響用戶的體驗度,今天小編給大家分享使用timer實現網頁勻速加載的進度條樣式,需要的的朋友參考下吧
    2017-01-01
  • Android監(jiān)聽軟鍵盤彈出與隱藏的兩種方法

    Android監(jiān)聽軟鍵盤彈出與隱藏的兩種方法

    本篇文章主要介紹了Android監(jiān)聽軟鍵盤彈出與隱藏的兩種方法,非常具有實用價值,需要的朋友可以參考下
    2017-04-04
  • Android線程間通信 Handler使用詳解

    Android線程間通信 Handler使用詳解

    這篇文章主要為大家介紹了Android線程間通信Handler使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-10-10

最新評論

健康| 神木县| 伊金霍洛旗| 米泉市| 昌宁县| 雅江县| 谢通门县| 吉林市| 通州区| 陕西省| 阿克苏市| 岳西县| 永济市| 武定县| 田东县| 武义县| 汶上县| 会宁县| 伽师县| 陆川县| 灵丘县| 万安县| 神池县| 当阳市| 察雅县| 晋州市| 尉氏县| 壤塘县| 米泉市| 二连浩特市| 伊宁市| 西乌珠穆沁旗| 彭水| 菏泽市| 成都市| 吉木萨尔县| 田林县| 葵青区| 久治县| 高阳县| 杭州市|