2

現在、Android アプリを Kindle Fire で動作させることを検討しています。MDPI と HDPI の両方の画面用のアートワークがありますが、アプリを Kindle にロードすると、MDPI アートワークが表示され、必要以上に親を埋めているアートワークの一部が引き伸ばされることに気付きました。 .

Androidで特定の状況(Kindleを使用している場合など)で、デフォルトでMDPIに設定するのではなく、HDPIアートワークから強制的にロードする方法があるかどうか疑問に思っていました.

HDPI アートワークを少し異なる名前で MDPI フォルダーに保存し、すべてのリソースをチェックするだけでよいことはわかっていますが、アプリのサイズが大きくなることは言うまでもなく、オーバーヘッドが大きくなります。 d も避けたいです。

ありがとう

更新:まだこれを見ています。MDPIアートワークが存在する場合でも、AndroidデバイスがMDPIの代わりにHDPIアートワークを選択する方法はありますか?

4

3 に答える 3

1

Kindle Fire は 160 dpi で 1024x600 ですよね?

その解像度で新しいリソースを試すことができます。そして、それらを MDPI フォルダーに配置します。/res ディレクトリに layout-large を追加し、そこにレイアウト ファイルをコピーします。このように、Kindle Fire では、layout-large でレイアウトを使用して、MDPI フォルダー内のより大きなリソースを指します。

また、リソースには常に 9 パッチのドローアブルを使用してください。

これがお役に立てば幸いです。

于 2012-01-28T00:41:05.633 に答える
1

その間、ハックソリューションを使用することになりましたが、これに出くわしました:

Android でビットマップのサイズを自動的に変更したくない

私のhdpiイメージをnodpiフォルダーに移動し(スケーリングの問題を回避するために)、名前をわずかに変更するだけで済みました(名前に_hdを追加しました)。その後、必要な画像の名前を受け取り、デバイスが hdpi の場合または kindle fire の場合に _hd 画像を返す画像ローダーを作成しました。

id = ctx.getResources().getIdentifier(string + "_hd", "drawable", context.getPackageName());

注: ドキュメントでは、リソース アドレスを使用するよりも効率が悪いため、getIdentifier() の使用を推奨していませんが、読み込み時間を調べたところ、getIdentifier を使用して 1000 枚の画像を読み込むには 0.25 秒かかりました。これは問題ありません。特に、それほど多くの画像に近い場所をロードしていないためです。

于 2012-04-06T00:17:52.500 に答える
0

その解像度で新しいリソースを試して、それらをMDPIフォルダーに配置できます。ディレクトリに追加layout-largeし、/resそこにレイアウト ファイルをコピーします。このように、Kindle Fire ではlayout-large、フォルダー内のより大きなリソースを指すようにレイアウトを使用しMDPIます。

于 2012-04-21T11:14:22.150 に答える