2012-12-06 25 views
0

我正在更新我开发的动态壁纸。该壁纸当前正在2.2设备上正确运行,但不在4.2设备上。Canvas或drawBitmap在ICS中改变了吗?

在ICS设备上,似乎只有最后一列被正确绘制。例如,在坐标系中,如果我的手机是420 x 720(不确定确切尺寸),则只绘制像素(420,0)到(420,720)。其余的是黑色/透明的。

下面是我使用的代码:https://github.com/gjtorikian/Earthbound-Battle-Backgrounds/blob/master/src/com/miadzin/livewallpaper/earthbound/EarthboundLiveWallpaper.java#L243

首先,我画一个256×256位。然后,我使用矩阵来缩放它。

再次,这在非ICS设备上正常工作。另一个棘手的方面是我使用JNI来完成一些位图数学,但我仍然认为问题出在这个画布代码的某处。

感谢您的帮助!

回答

0

好的,过了几天我终于明白了。

创建我的位图后,我需要每个像素设置在Java中:

for (int x = 0; x < 254; x++) { 
    for (int y =0; y < 254; y++) { 
     bmp.setPixel(x, y, Color.argb(255, 0, 0, 0)); 
    } 
} 

的问题是:为什么只针对ICS?