Android設定bmp某一顏色為透明色

2021-06-13 02:41:43 字數 757 閱讀 4262

今天找各種資料,總算解決了bmp在安卓下把背景色設為透明了~

直接上**:

private colormatrix cm;

private paint paint2;

cm = new colormatrix(new float);

paint2.setcolorfilter(new colormatrixcolorfilter(cm));

canvas.drawbitmap(bmp, 0,0,paint2);

paint類有個函式為setcolorfiliter,裡面可以設定為new colormatrixcolorfilter(cm),這個引數是指將顏色矩陣cm參與原來的點陣圖bmp計算

計算過程如下:

r' = a*r + b*g + c*b + d*a + e;  

g' = f*r + g*g + h*b + i*a + j;

b' = k*r + l*g + m*b + n*a + o;

a' = p*r + q*g + r*b + s*a + t;

這裡我的bmp背景色為黑色,所以黑色的a'值應調為0,其他顏色的alpha值為1,黑色的rgb為(0,0,0),所以將p,q,r的值設定為1,s,t的值設定為0,代入公式得a『=0

而其他的顏色因為rgb不全為0,所以a』的值計算後為1,這樣便將bmp的背景黑色設為透明色了,其他的背景色可以參照這個設定(如紅色背景:p+s+t  = 0;此時也得考慮黑色的情況不透明,s+t=1.即p=-1,t=0,s=1,q=1,r=1可行)

設定某一行背景顏色的CListCtrl

三個介面函式,設定某一行的文字顏色 前景色 和背景色,使用說明都放在注釋裡了,自己看吧 linecolorlistctrl.h if defined afx linecolorlistctrl h 92eb1cd4 cd33 4e02 a098 367a8feff38e included defin...

java的list裡設定某一項

list list new arraylist mapmember new hashmap member.put key a member.put value 1 list.add member member new hashmap member.put key b member.put value...

QT中設定QTreeWidget某一列可編輯

大家都知道,在qt中,qtreewidget都是qtreewidgetitem的形式來組織的,也就是說如果單獨設定屬性的話,可以使得某一行可以編輯或者不可編輯 qtreewidgetitem setflags qt itemisenabled qt itemisselectable qt itemi...