1

HDPI 画面に問題があります (Samsung Galaxy S2 でテスト済み)。

OES_draw_texture 1.1 エクステンションと組み合わせて使用​​するテクスチャ マップがあります。これは、大小の MDPI 画面で問題なく動作します (HTC Legend および Asus Transformer タブレットでテスト済み)。テクスチャ マップが正しくトリミングされ、テクスチャが正しく表示されます。

ただし、Galaxy S2 (およびおそらくすべての HDPI デバイス) では、テクスチャ マップが正しくトリミングされません。テクスチャ マップは /drawable/ ディレクトリにあり、minSdkVersion は 4 に設定されているため、画面互換性はオンになりません。画面の互換性がオンになっている場合 (minSdkVersion を 3 に設定)、MDPI 画面をエミュレートしているため、S2 でも正しく動作します。

ドローアブル リソース "a" にアクセスすると、Android は特定の密度のフォルダー (この場合は /drawable-hdpi/) を検索し、見つからない場合は /drawable/ または /drawable にフォールバックするという印象を受けました。 -mdpi/. ただし、これをサポートするドキュメントを見つけることができませんでした。

私の質問は次のとおりです。

  • Android のリソース検索の動作はどのようなものですか? hdpi でリソースが見つからない場合、実際には mdpi にフォールバックしますか? ソース?
  • OES_draw_texture GL-ES1.1 エクステンションが正しくトリミングされないのはなぜですか? px と dp が関係していると思われます。draw_texture は通常直接ピクセルを使用しますが、Android は dp を使用しようとしている可能性があり、リソースが /drawable/ フォルダーにあるため、すべてのクロップ位置を 1.5 倍にしますか?
  • 画面互換性を使用せずに HDPI デバイスに MDPI を強制的にエミュレートする方法はありますか?

これに関する知識があれば幸いです。

4

1 に答える 1

2

ここから。 (テクスチャをロードするとき)

// This will tell the BitmapFactory to not scale based on the device's pixel density:
// (Thanks to Matthew Marshall for this bit)
BitmapFactory.Options opts = new BitmapFactory.Options();
opts.inScaled = false;
于 2011-10-09T13:14:03.470 に答える