0

「圧縮」関数を使用してビットマップ オブジェクトを OutputStream に圧縮しています。これが私のコードです:

try {
                    if (bitmap != null) {
                        bitmap.compress(Bitmap.CompressFormat.JPEG, 100,
                                bytes);
                    } else {
                        Message message = handler.obtainMessage(1, "false");
                        handler.sendMessage(message);
                        return;
                    }
                } catch (OutOfMemoryError oom) {
                    System.gc();
                    Message message=handler.obtainMessage(1,"false");
                    handler.sendMessage(message);
                    return;
                } catch (NullPointerException npe) {
                    System.gc();
                    Message message = handler.obtainMessage(1, "false");
                    handler.sendMessage(message);
                    return;
                } catch (Exception e) {
                    System.gc();
                    Message message = handler.obtainMessage(1, "false");
                    handler.sendMessage(message);
                    return;
                }

このコードを G1 とヒーローで実行すると、適切な出力ストリームが得られます (後で SD カードのイメージ ファイルに保存します)。しかし、Google nexus でこのコードをテストすると、出力ストリームを画像ファイルに変換した後にぼやけた画像が表示されます。

ご参考までに

OS: アンドロイド 1.5; G1 と Hero は 1.5 OS 上にあり、nexus は 2.0 上にある

助けてください.nexusに既知の問題はありますか?? または私は何か間違ったことをしていますか??

4

1 に答える 1

1

Android 向けのゲーム開発: クイック入門 を確認してください。

からStep Three: Carefully Design the Best Game Ever:

テクスチャ圧縮の問題は、異なるグラフィック カード ベンダーが異なるテクスチャ フォーマットをサポートしていることです。G1 およびその他の MSM7k デバイスは、ATI の ATITC 圧縮形式をサポートしています。Droid は、PowerVR の PVRTC 形式をサポートしています。Nvidia の Tegra2 プラットフォームは DXT フォーマットをサポートしています。悪いニュースは、これらの形式に互換性がないことです。幸いなことに、すべての OpenGL ES 2.0 デバイス (Snapdragon ベースの Nexus One、OMAP3 ベースの Droid、および Tegra2 デバイスを含む) は、ETC1 と呼ばれる共通のフォーマットをサポートしています。ETC1 は最適なテクスチャ形式ではなく (アルファ チャネルのサポートがない)、第 1 世代のデバイスではサポートされていませんが、サポートされている最も一般的な形式です (Android SDK は圧縮ユーティリティを提供します (sdk/tools/ etc1tool) およびこの形式のランタイム ツール)。

于 2010-06-19T14:30:25.977 に答える