亚洲欧美日韩熟女|做爱高潮视频网址|国产一区二区三级片|国产Av中文字幕www.性色av|亚洲婷婷永久免费|国产高清中文字幕|欧美变态网站久re视频精品|人妻AV鲁丝第一页|天堂AV一区二区在线观看|综合 91在线精品

Android Imageview 圖片置灰,圖片特殊節(jié)日去真彩色

2023-04-12


ImageView


ImageView是Android中的一個圖片顯示控件,用來加載網(wǎng)絡(luò)或者本地圖片資源。好看的圖片可以讓應(yīng)用更被用戶接收,如果圖片作為應(yīng)用的裝飾,已成為主流,但不是所有的圖片顯示都符合要求,比如一些特殊時間,特別靚麗的色彩不符合當(dāng)下假日要求,這個時候如果能讓圖片變成灰色,這樣用助于達到效果。


由于圖片基本都是人工在處理,一張圖可以直接換資源,如果是千人千面,幾十萬或者上百張資源根本來不及處理。這時,如果我們能通過色彩過濾,對一些色彩進行置灰,這樣在顯示上依舊可以達到效果。


ImageView提供了setColorFilter(ColorMatrixColorFilter)方法,通過該方法,對顏色進行過濾。

public ColorMatrixColorFilter(@NonNull ColorMatrix matrix)又是一個Bean類,真正處理色彩的是ColorMatrix

ColorMatrix :


4x5矩陣,用于變換位圖的顏色和alpha分量。矩陣可以作為單個數(shù)組傳遞,并按如下方式處理


setSaturation(float sat)方法就是對顏色進行處理,針對的是R/G/B三原色進行混淆


sat:取值是0到1,值越大,色彩飽和越量,為1,是圖片的原色,越小,越灰


Android中的color基本有三原色,RGB組成,


000000是黑色,


FFFFFF:白色


源碼如下:

public void setSaturation(float sat) {
    reset();
    float[] m = mArray;

    final float invSat = 1 - sat;
    final float R = 0.213f * invSat;
    final float G = 0.715f * invSat;
    final float B = 0.072f * invSat;

    m[0] = R + sat; m[1] = G;       m[2] = B;
    m[5] = R;       m[6] = G + sat; m[7] = B;
    m[10] = R;      m[11] = G;      m[12] = B + sat;
}

測試代碼:


ColorMatrix colorMatrix = new ColorMatrix();
           //0-1
          colorMatrix.setSaturation(progress * 1.0f / 100.0f);
          ColorMatrixColorFilter colorFilter = new     
           ColorMatrixColorFilter(colorMatrix);
           imageView.setColorFilter(colorFilter);



本文僅代表作者觀點,版權(quán)歸原創(chuàng)者所有,如需轉(zhuǎn)載請在文中注明來源及作者名字。

免責(zé)聲明:本文系轉(zhuǎn)載編輯文章,僅作分享之用。如分享內(nèi)容、圖片侵犯到您的版權(quán)或非授權(quán)發(fā)布,請及時與我們聯(lián)系進行審核處理或刪除,您可以發(fā)送材料至郵箱:service@tojoy.com