请问,为什么我把像素的透明度从255改到0后却没效果。
我的过程是,先给bitmap对象装载图片,然后getPiexls(),然后改透明度,然后setPixels(),最后drawImage();
为什么却没有效果。
或者谁能告诉我ColorFilter怎么用也好,谢谢了。
我的过程是,先给bitmap对象装载图片,然后getPiexls(),然后改透明度,然后setPixels(),最后drawImage();
为什么却没有效果。
或者谁能告诉我ColorFilter怎么用也好,谢谢了。
就这样创建的,难道这样不行吗。
public class ImageView extends View {
// Canvas canvas = new Canvas();
int[] m_BmpPixel;
Canvas m_Canvas;
Paint m_Paint;
Bitmap m_Background;
Bitmap m_item1, m_item2, m_item3, m_item4, m_item5, m_item6, m_item7;
public ImageView(Context context) {
super(context);
// TODO Auto-generated constructor stub
m_BmpPixel = new int[6700];
// load bitmap
//m_Background = ((BitmapDrawable) getResources().getDrawable(R.drawable.background)).getBitmap();
m_Background = BitmapFactory.decodeResource(getResources(),
R.drawable.background);
m_Background.setDensity(107);
m_item1 = BitmapFactory.decodeResource(getResources(),
R.drawable.item1);
m_Paint = new Paint();
m_Canvas = new Canvas(m_Background);
drawImage(m_item1, 0, 0);
}
public void onDraw(Canvas canvas){
// draw bitmap
canvas.drawBitmap(m_Background, 0, 0, null);
// drawImage(m_item1, 0, 0);
} public void transparentImage(Bitmap bmp){
ColorFilter cft;
int i,m_ImageWidth, m_ImageHeigth, j;
m_ImageWidth = bmp.getWidth();
m_ImageHeigth = bmp.getHeight();
bmp.getPixels(m_BmpPixel, 0, m_ImageWidth, 0, 0, m_ImageWidth, m_ImageHeigth); for(i = 0; i<6700; i++){ if((m_BmpPixel[i] & 0x00ffffff) == 0x00ffffff){
m_BmpPixel[i] = 0x00ffffff;
} }
bmp.setPixels(m_BmpPixel, 0, m_ImageWidth, 0, 0, m_ImageWidth, m_ImageHeigth);
}
public void drawImage(Bitmap bmp, float x, float y) {
// if(bmp == null) return;
/* 记录好图片坐标 */
// map = new HashMap();
// map.put("x", x);
// map.put("y", y);
// map.put("bmp", bmp);
// list.add(map);
// Log.d("MyView", "drawImage--->" + initx + ":" + inity);
m_Canvas.drawBitmap(bmp, x, y, m_Paint);
invalidate();
}
public void transparentImage(Bitmap bmp){ColorFilter cft;int i,m_ImageWidth, m_ImageHeigth, j;m_ImageWidth = bmp.getWidth();
m_ImageHeigth = bmp.getHeight();bmp.getPixels(m_BmpPixel, 0, m_ImageWidth, 0, 0, m_ImageWidth, m_ImageHeigth);for(i = 0; i<6700; i++){if((m_BmpPixel[i] & 0x00ffffff) == 0x00ffffff){
m_BmpPixel[i] = 0x00ffffff;
}}
bmp.setPixels(m_BmpPixel, 0, m_ImageWidth, 0, 0, m_ImageWidth, m_ImageHeigth);}