2

私はpngファイルをロードするための次のコードを持っています:

BitmapFactory.Options options = new BitmapFactory.Options();
options.inPreferredConfig = Bitmap.Config.ARGB_8888;
options.inDither = false;
map =  BitmapFactory.decodeResource(getResources(), mapid, options);

残念ながら、アルファチャンネルがない場合、画像を RGB_565 として読み込みます。どうすればこれを防ぎ、変更せずに毎回一貫して読み込むことができますか (ディザリング、変換なし、またはその他)。

これが不可能な場合、PNG ファイルを BitmapFactory なしで ARGB_8888 としてロードする別の方法がありますか?

それとも、アルファチャンネルもサポートし、常に ARGB_8888 ビットマップを提供する PNG の代わりに使用できる別の形式がありますか?

PS: Android 2.3.4 を使用しています。

4

1 に答える 1

1

私はアイデアを得ました。

  1. PreferredConfig なしで PNG ビットマップをロードしてみてください。
  2. 画像のピクセルを取得します。
  3. 必要な設定 (ARGB_8888) で新しいビットマップを作成します。
  4. PNG ビットマップのピクセルを新しいビットマップに設定します。

走るべきだと思います。

于 2012-06-09T00:15:39.487 に答える