绘制透明位图

时间:2012-11-04 17:37:09

标签: android bitmap android-canvas ondraw

过去2-3天我一直面临着一个奇怪的问题。我想做的事情看起来很容易,但我的解决方案并没有以某种方式回应我想要的。让我告诉你我当然想要的东西。

我有一张照片(.png)。我将它拆分为5个部分并将它们保存为.png。我的期望是有一个视图对象将这5张图片显示为图片。所以我决定使用canvas.drawBitmap()方法在onDraw()方法中绘制5个图片。它工作正常。但是,当我想调整大小时,我使用了createScaledBitmap(位图,宽度,高度,布尔值)。我已经将这种方式应用于每5个不同的位图对象,以调整大小并在onDraw()方法中绘制。不幸的是,我有一个完整的图片,但每张图片之间有一条线路。我已经在方法createScaledBitmap(位图,宽度,高度,布尔值)中将布尔值更改为true,然后它在图片质量差的情况下运行良好。

protected void onDraw(Canvas canvas) {
    super.onDraw(canvas);

    for (int i = 0; i < 5; i++) {
        Bitmap image = BitmapFactory.decodeResource(getResources(),
                getResources().getIdentifier(
                        "f" + i, "drawable", getContext().getPackageName()));
        image = Bitmap.createScaledBitmap(image, getWidth(), getHeight(), true);
        canvas.drawBitmap(image, new Matrix(), null);
    }
}

http://imageshack.us/photo/my-images/717/96553428.png

http://imageshack.us/photo/my-images/809/33612864.png

http://imageshack.us/photo/my-images/255/53597408.png

注意:绘图速度很重要。这意味着绘制时间不应超过500毫秒。

0 个答案:

没有答案