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

Android中使用Bitmap類將矩形圖片轉(zhuǎn)為圓形的方法

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

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

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; 
} 


下面再解釋下:
由于圖片是長方形,所以圖片的 寬、高 肯定會有一邊要小于另一邊,要生成正方形就已最小的一邊為基準(zhǔn),再來裁切定位另一邊的顯示范圍
至于圓角的半徑則是正方形寬的一半,用過 CSS 的就知道,畫圓很方便 border-radius設(shè)為 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; 
} 

相關(guān)文章

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

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

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

    Android輸入框添加emoje表情圖標(biāo)的實現(xiàn)代碼

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

    Android數(shù)據(jù)庫操作工具類分享

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

    Android系統(tǒng)實現(xiàn)DroidPlugin插件機(jī)制

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

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

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

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

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

    Android PopupWindow實現(xiàn)左側(cè)彈窗效果

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

    使用Timer實現(xiàn)網(wǎng)頁勻速加載的進(jìn)度條樣式

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

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

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

    Android線程間通信 Handler使用詳解

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

最新評論

祁门县| 岳阳市| 达州市| 金坛市| 肇源县| 积石山| 定日县| 施甸县| 济阳县| 专栏| 简阳市| 阳新县| 砀山县| 洪湖市| 准格尔旗| 潍坊市| 郧西县| 徐水县| 临颍县| 白沙| 钦州市| 萍乡市| 洛南县| 德化县| 南江县| 柞水县| 承德市| 额尔古纳市| 鄂托克旗| 临澧县| 巴塘县| 安康市| 安宁市| 晋城| 鸡西市| 乌拉特后旗| 岳普湖县| 东山县| 靖江市| 大宁县| 五指山市|