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

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自定義UI手勢密碼改進(jìn)版源碼下載

    Android自定義UI手勢密碼改進(jìn)版源碼下載

    這篇文章主要介紹了Android自定義UI手勢密碼改進(jìn)版,為大家提供了手勢密碼源碼下載,,具有一定的實用性,感興趣的小伙伴們可以參考一下
    2016-10-10
  • Android實現(xiàn)懸浮窗的簡單方法實例

    Android實現(xiàn)懸浮窗的簡單方法實例

    相信大家應(yīng)該也都發(fā)現(xiàn)了,現(xiàn)在很多應(yīng)用都使用到懸浮窗,例如微信在視頻的時候,點擊Home鍵,視頻小窗口仍然會在屏幕上顯示,下面這篇文章主要給大家介紹了關(guān)于Android實現(xiàn)懸浮窗的簡單方法,需要的朋友可以參考下
    2021-09-09
  • 基于Android studio3.6的JNI教程之opencv實例詳解

    基于Android studio3.6的JNI教程之opencv實例詳解

    這篇文章主要介紹了基于Android studio3.6的JNI教程之opencv實例詳解,本文通過實例代碼截圖的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-03-03
  • Android 監(jiān)聽鎖屏、解鎖、開屏 功能代碼

    Android 監(jiān)聽鎖屏、解鎖、開屏 功能代碼

    這篇文章主要介紹了Android 監(jiān)聽鎖屏、解鎖、開屏 功能代碼的相關(guān)資料,需要的朋友可以參考下
    2016-06-06
  • Android使用TextInputLayout創(chuàng)建登陸頁面

    Android使用TextInputLayout創(chuàng)建登陸頁面

    這篇文章主要為大家詳細(xì)介紹了Android使用TextInputLayout創(chuàng)建登陸頁面,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • Android實現(xiàn)日歷控件示例代碼

    Android實現(xiàn)日歷控件示例代碼

    本篇文章主要介紹了Android實現(xiàn)日歷控件示例代碼,實例講解了Android日期與時間相關(guān)控件的相關(guān)使用技巧,具有一定參考價值,需要的朋友可以參考下
    2017-03-03
  • Android 中CheckBox的isChecked的使用實例詳解

    Android 中CheckBox的isChecked的使用實例詳解

    這篇文章主要介紹了Android 中CheckBox的isChecked的使用實例詳解的相關(guān)資料,需要的朋友可以參考下
    2017-04-04
  • Android快速開發(fā)系列 10個常用工具類實例代碼詳解

    Android快速開發(fā)系列 10個常用工具類實例代碼詳解

    今天特此整理出10個基本每個項目中都會使用的工具類,用于快速開發(fā),對android開發(fā)常用工具類感興趣的朋友跟隨小編一起看看吧
    2018-09-09
  • Android實現(xiàn)簡單購物車功能

    Android實現(xiàn)簡單購物車功能

    這篇文章主要為大家詳細(xì)介紹了Android實現(xiàn)二級列表購物車功能 ,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • Android Git submodule詳解用法示例

    Android Git submodule詳解用法示例

    項目中經(jīng)常會使用到第三方的 git 庫, 將三方庫整合到項目中最簡單的辦法就是復(fù)制粘貼, 但是如果這個庫升級了一個很酷炫的功能, 你要怎么整合進(jìn)來呢?(其實就是 git 版的包管理器)這就是本次要介紹的 git-submodule 操作, 直接把第三方的版本庫合并到自己的庫中
    2021-11-11

最新評論