9

これはシナリオです。次のフォルダがあります。

  • ドローアブル
  • drawable-ldpi
  • drawable-mdpi
  • ドローアブル hdpi
  • ドローブル-xhdpi

画像 (通常は背景ですが、そのような画像のみにバインドされているわけではありません) は、/res/drawableのみに配置されます。

Galaxy S3 でアプリをテストしたところ、背景が正しく表示されました。HTC One X でテストしましたが、背景画像が表示されません。

/res/drawableからに画像をコピーする/res/drawable-xhdpiと、One X に画像が表示されます。

論理的に考えると、これは起こってはならないことですよね?! に画像がない場合drawable-xhdpi、Android はデフォルトのフォルダに到達するまで他のフォルダを調べて/res/drawable、そこからプルする必要があります。

一部のモバイルでこれが発生しないのはなぜですか?

PS。一部のタブレットで同じ問題に気付きましたが、どのタブレットか思い出せません。

PPS。ここで背景画像について言及しましたが、問題はそれに限定されません。他の画像でも発生します。xhdpi モバイルに大きな画像の問題があることは承知していますが、問題が背景画像が大きすぎることにあるとは考えたくありません。「通常の」サイズの他の画像でも発生します。

4

2 に答える 2

9

画像ファイルを drawable フォルダに入れたいのはなぜですか?

私がインターネットで読んだヒントによると、画像ファイルをドローアブルフォルダーに入れるべきではありません。

ドローアブル フォルダーには、xml タイプのドローアブルのみを配置します。

画像ファイルを配置する場合は、次のいずれかのフォルダーに配置します (または、追加の修飾子を追加するか、他の修飾子を使用します)。

  • drawable-nodpi (サイズがわからない画像のみ)
  • drawable-ldpi
  • drawable-mdpi
  • ドローアブル hdpi
  • ドローアブル-xhdpi
  • drawable-tvdpi

drawable フォルダーに入れられた画像はデフォルトとして扱われます。これは mdpi です。したがって、ファイルを同じ画面密度カテゴリに保持したい場合は、drawable-mdpi フォルダーに入れます。

drawable フォルダーに画像を入れないもう 1 つの理由は、一部のデバイス (samsung galaxy s など) では、Android が自動的にファイルを 16 ビット画像に変換するため、場合によっては画像が見栄えが悪くなります。

これは、この問題を説明するリンクです。

于 2012-12-29T11:55:51.577 に答える
3

「res/drawable」フォルダーのみにあるドローアブルでプロジェクトを作成し、One X でテストしたところ、画像が表示されることを確認しました:
https://github.com/lnanek/Misc/tree/master/TestOneXDrawableFolder

レイアウト:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"  
    xmlns:tools="http://schemas.android.com/tools"  
    android:layout_width="match_parent"  
    android:layout_height="match_parent"  
    tools:context=".MainActivity">
    <ImageView  
        android:src="@drawable/drawableonly"  
        android:layout_width="wrap_content"  
        android:layout_height="wrap_content"  
        android:layout_centerHorizontal="true"  
        android:layout_centerVertical="true"  
        />
</RelativeLayout>

資力:

res  
res/drawable  
res/drawable/drawableonly.png  
res/drawable-hdpi  
res/drawable-hdpi/ic_launcher.png  
res/drawable-ldpi  
res/drawable-mdpi  
res/drawable-mdpi/ic_launcher.png  
res/drawable-xhdpi  
res/drawable-xhdpi/ic_launcher.png  
res/layout  
res/layout/activity_main.xml  
res/menu  
res/menu/activity_main.xml  
res/values  
res/values/strings.xml  
res/values/styles.xml  
res/values-v11  
res/values-v11/styles.xml  
res/values-v14  
res/values-v14/styles.xml  

他の行動を引き起こしている可能性のある、自分が違うことをしていることを理解しようとすることができます。「描画可能」フォルダーと「drawable-mdpi」フォルダーを持つことは少し奇妙であることに注意してください。描画可能フォルダーはmdpiデフォルトで密度であるためです。これらの 2 つのうちどちらが使用されるかは、決定論的ではない場合があります。密度指定子を使用すると、最新のビルド ツールで -v4 が自動的に追加され、これらの指定子が理解されず、正しく処理されない Android 1.5 の問題が修正さdrawable-mdpi-v4れることがわかっています。ただし、どちらのフォルダーにもmdpi密度クラスがあるため、どちらのフォルダーからのドローアブルも、そこから使用すると自動的に拡大されることに注意してください。

于 2012-12-29T08:26:34.387 に答える