日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

android 原色调渲染

發布時間:2025/6/17 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android 原色调渲染 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
假如你的圖標,需求需要的顏色多變的情況下,可以考慮原色調渲染這種方法。

// 原色調渲染
public Bitmap genRenderingIcon(@DrawableRes int origin, int primaryColor) {
if (origin == -1) {
return null;
}
BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = false;
Bitmap bitmapOrigin = BitmapFactory.decodeResource(getResources(), origin, options);
Bitmap iconBitmap = bitmapOrigin.copy(Bitmap.Config.ARGB_8888, true);
Canvas canvas = new Canvas(iconBitmap);
canvas.drawColor(primaryColor & 0x00ffffff | (isLight(primaryColor) ? 0xff000000 : 0x8a000000), PorterDuff.Mode.SRC_IN);
return iconBitmap;
}

以上是android的原色調渲染主要的代碼;
接下來是我調用的一個例子:
@Override
public void onTabUnselected(TabLayout.Tab tab) {
tabLayout.getTabAt(tab.getPosition()).setIcon(new BitmapDrawable(getResources(), genRenderingIcon((int) unpickIcons.get(tab.getPosition()), Color.rgb(12, 64, 83))));
}

在onCreate方法里面:(我這里主要是改變上tab的圖標)

final TabLayout tabLayout = (TabLayout) findViewById(R.id.tabs); tabLayout.addTab(tabLayout.newTab().setIcon(R.drawable.home_picked));
tabLayout.addTab(tabLayout.newTab().setIcon(new BitmapDrawable(getResources(), genRenderingIcon(R.drawable.ic_format_list_bulleted_black_48dp, Color.rgb(12, 64, 83)))));
tabLayout.addTab(tabLayout.newTab().setIcon(new BitmapDrawable(getResources(), genRenderingIcon(R.drawable.ic_face_black_48dp, Color.rgb(12, 64, 83))))); 大概就是這樣子的用法,具體的引用可根據實際項目而定。

轉載于:https://www.cnblogs.com/huaxianglala/p/5977263.html

總結

以上是生活随笔為你收集整理的android 原色调渲染的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。