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 を強制的にエミュレートする方法はありますか?
これに関する知識があれば幸いです。