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

まず、256x256ビットマップを描画します。次に、マトリックスを使用してスケーリングします。

繰り返しますが、これは非ICSデバイスで正常に機能します。もう1つのトリッキーな側面は、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 に答える