0

我正在更新我开发的动态壁纸。壁纸当前在 2.2 设备上正常运行,但在我的 4.2 设备上运行不正常。

在 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 x 256 的位图。然后,我使用矩阵来缩放它。

同样,这在非 ICS 设备上运行良好。另一个棘手的方面是我正在使用 JNI 来做一些位图数学运算,但我仍然认为问题出在这个画布代码的某个地方。

谢谢你的帮助!

4

1 回答 1

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?

于 2012-12-09T19:57:20.633 回答