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

Android 實(shí)現(xiàn)圖片生成卷角和圓角縮略圖的方法

 更新時間:2017年11月03日 11:04:17   作者:牧秦丶  
本篇文章主要介紹了Android 實(shí)現(xiàn)圖片生成卷角和圓角縮略圖的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下

在 Android 的一些界面中,有時候我們需要為一副圖片生成大小為 n * n 的縮略圖,有時候需要的縮略圖特殊一些,比如:

1、帶圓角的縮略圖:

如果我們需要帶圓角的縮略圖,但提供的圖片是 n * n 的正方形的圖片,該怎么辦?這時候可以在貼圖之前,先利用 Paint.setXfermode 方法來設(shè)置圖片疊加時的混合模式,從而達(dá)到目的。一般而言,使用方法如下:

Paint paint = new Paint();
paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.XXX);
canvas.drawBitmap(srcBmp, rc, rc, paint);

關(guān)于 PorterDuff.Mode 的值,確定了 SrcBmp 和 DstBmp 交疊時像素的處理方式,其作用用一幅圖片展示如下:


我們看出 SrcIn 這個模式,只保留 SrcBmp 和 DstBmp 直接的交集部分,并且只展現(xiàn) SrcBmp 上這部分交集的內(nèi)容。這個模式適合我們做帶圓角的縮略圖。我們先在 Canvas 上繪制一個實(shí)心圓角矩形,其他部分透明,然后用這個模式把縮略圖再繪制到 Canvas 上即可:

Bitmap roundThumbBitmap = Bitmap.createBitmap(
  rc.width(), rc.height(), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(roundThumbBitmap);

Paint paint = new Paint();
paint.setColor(0xFFFF0000);  // 任何不透明的顏色均可。(作為掩碼色)
paint.setAntiAlias(true);   // 開啟抗鋸齒,防止圓角毛躁.

// 填充一個圓角矩形.
final float radius = 5.0f;
canvas.drawRoundRect(new RectF(rc), radius, radius, paint);

paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN));
canvas.drawBitmap(srcBmp, rc, rc, paint);

做出的效果如下:


2、帶 “卷角+圓角” 的縮略圖:

有時候,我們需要為一張普通的圖片生成 “卷角+圓角” 效果的圖,像這樣:


這時候,我們可以用兩張輔助圖來實(shí)現(xiàn)這個效果,一張底圖做掩碼,得到 “圓角+左上角切角” 的效果,然后用另一張圖片覆蓋在上面,得到 “灰色邊框+右上角卷角” 的效果,我們需要的兩張圖如下:

代碼如下:

Bitmap rollAngleThumbBmp = Bitmap.createBitmap(rc.width(), rc.height(), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(rollAngleThumbBmp);

Bitmap maskBmp = BitmapFactory.decodeResource(context.getResources(), R.drawable.mask);
Bitmap borderBmp = ((BitmapDrawable)context.getResources().getDrawable(R.drawable.border)).getBitmap();

Paint paint = new Paint();
paint.setAntiAlias(true);

// 先貼掩碼圖.
canvas.drawBitmap(maskBmp, rc, rc, paint);

// 再用 SrcIn 的模式貼縮略圖.
paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN));
canvas.drawBitmap(srcBmp, rc, rc, paint);

// 先取消 Xfermode.
paint.setXfermode(null);

// 再貼邊框卷角圖.
canvas.drawBitmap(borderBmp, rc, rc, paint);

得到的效果如下(看起來有些毛躁,純屬是我切的 mask 和 border 圖片的問題,不是方法的問題):

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

相關(guān)文章

  • Android Doze模式啟用和恢復(fù)詳解

    Android Doze模式啟用和恢復(fù)詳解

    這篇文章主要介紹了Android Doze模式啟用和恢復(fù)功能,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2017-03-03
  • Android基于OpenCV實(shí)現(xiàn)霍夫直線檢測

    Android基于OpenCV實(shí)現(xiàn)霍夫直線檢測

    霍夫變換利用點(diǎn)與線之間的對偶性,將圖像空間中直線上離散的像素點(diǎn)通過參數(shù)方程映射為霍夫空間中的曲線,并將霍夫空間中多條曲線的交點(diǎn)作為直線方程的參數(shù)映射為圖像空間中的直線。給定直線的參數(shù)方程,可以利用霍夫變換來檢測圖像中的直線。本文簡單講解Android的實(shí)現(xiàn)
    2021-06-06
  • Android中的Notification機(jī)制深入理解

    Android中的Notification機(jī)制深入理解

    這篇文章主要給大家介紹了關(guān)于Android中Notification機(jī)制的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-02-02
  • Flutter?Dio?簡單封裝demo

    Flutter?Dio?簡單封裝demo

    這篇文章主要為大家介紹了Flutter Dio簡單封裝示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07
  • Android實(shí)現(xiàn)花瓣飄落效果的步驟

    Android實(shí)現(xiàn)花瓣飄落效果的步驟

    這篇文章主要介紹了Android實(shí)現(xiàn)花瓣飄落效果的步驟,幫助大家更好的理解和學(xué)習(xí)使用Android開發(fā),感興趣的朋友可以了解下
    2021-04-04
  • Android實(shí)現(xiàn)閃屏及注冊和登錄界面之間的切換效果

    Android實(shí)現(xiàn)閃屏及注冊和登錄界面之間的切換效果

    這篇文章主要介紹了Android實(shí)現(xiàn)閃屏及注冊和登錄界面之間的切換效果,實(shí)現(xiàn)思路是先分別實(shí)現(xiàn)閃屏、注冊界面、登錄界面的活動,再用Intent將相關(guān)的活動連接起來,實(shí)現(xiàn)不同活動之間的跳轉(zhuǎn),對android 實(shí)現(xiàn)閃屏和界面切換感興趣的朋友一起看看吧
    2016-11-11
  • Android開發(fā)自學(xué)路線圖

    Android開發(fā)自學(xué)路線圖

    這篇文章主要介紹了Android開發(fā)自學(xué)路線圖,本文講解的路線圖分為JAVA、Android基礎(chǔ)、Web基礎(chǔ)、Android項(xiàng)目4部份,是一個入門級學(xué)習(xí)路線圖,需要的朋友可以參考下
    2015-04-04
  • android studio生成aar包并在其他工程引用aar包的方法

    android studio生成aar包并在其他工程引用aar包的方法

    本篇文章主要介紹了android studio生成aar包并在其他工程引用aar包的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-11-11
  • 提升Android應(yīng)用視覺吸引效果的10個UI設(shè)計(jì)技巧

    提升Android應(yīng)用視覺吸引效果的10個UI設(shè)計(jì)技巧

    在Android應(yīng)用開發(fā)中,風(fēng)格和設(shè)計(jì)或許不是最關(guān)鍵的要素,但它們在決定Android應(yīng)用成功與否上確實(shí)扮演重要的角色,以下是10個Android應(yīng)用的UI設(shè)計(jì)技巧,還有個附加技巧,感興趣的朋友可以了解下哦
    2013-01-01
  • Android通過startService播放背景音樂

    Android通過startService播放背景音樂

    這篇文章主要介紹了Android通過startService播放背景音樂簡單示例,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2015-12-12

最新評論

互助| 刚察县| 隆德县| 南汇区| 安义县| 西乌| 稻城县| 浮山县| 汉寿县| 房山区| 新安县| 张掖市| 清新县| 民丰县| 交城县| 兴安盟| 肇源县| 舞钢市| 铅山县| 西充县| 康定县| 富顺县| 濮阳市| 扎鲁特旗| 荆门市| 中阳县| 牙克石市| 嘉定区| 扎囊县| 温州市| 扶余县| 稻城县| 宿松县| 沙田区| 汪清县| 灵台县| 海安县| 遵义县| 元江| 五指山市| 诸暨市|