android 原色调渲染
生活随笔
收集整理的這篇文章主要介紹了
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))))); 大概就是這樣子的用法,具體的引用可根據實際項目而定。
// 原色調渲染
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 原色调渲染的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: HTML 自学笔记(HTML框架+表单设
- 下一篇: js-String