使用BitmapRegionDecoder时,使用垃圾绘制而不是透明颜色

时间:2014-11-30 23:44:14

标签: android bitmap transparent bitmapregiondecoder

所以,简单的任务:我有一张大图,它有透明的部分。我想使用BitmapRegionDecoder方法decodeRegion将矩形部分解码为位图。虽然图片的非透明部分被很好地解码,但我得到一些废话而不是透明部分。有人面对熟悉的事吗?我使用的代码:

// colNumber, rowNumber are some proper integers from 0 to 4
InputStream is = playingTable.getResources().openRawResource(R.drawable.picture);
        try {
            BitmapRegionDecoder decoder = BitmapRegionDecoder.newInstance(is, false);
            int cellWidth = decoder.getWidth() / 5;
            int cellHeight = decoder.getHeight() / 5;
            Rect rect = new Rect(colNumber * cellWidth, rowNumber * cellHeight, (colNumber + 1) * cellWidth, (rowNumber + 1) * cellHeight);
            bmp = decoder.decodeRegion(rect, null);
            is.close();
        } catch (IOException e) {
            Log.i("Exception: ", e.toString());
        }

// in draw method:
        canvas.drawBitmap(bmp, x, y, null);

1 个答案:

答案 0 :(得分:0)

使用Paint对象进行绘制。它具有alpha通道。您可能需要在嵌套循环中逐个像素地运行图像。

Android Developers - Paint