4

実際のデバイスが、プレビューで表示されている Eclipse とは異なるリソースを取得していることに気付きました。たとえば、最小幅が 720 dp のデバイス用のドローアブル リソースを次のように作成しました。

  • drawable-sw720dp-mdpiSamsung Galaxy Tab 1280x800 mdpi用
  • drawable-sw720dp-hdpiNexus 10 2560x1600 hdpi の場合。

しかし、Samsung Galaxy Tab 1280x800 mdpiは?drawable-sw720dp-hdpiではなくdrawable-sw720dp-mdpi

他のデバイスでも同じです。リソースがあればdrawable-sw320dp-hdpiSony Ericsson xperia-ARC 854x480 hdpiがピックアップしますか?drawable-sw320dp-xhdpidrawable-sw320dp-xhdpi

drawable-hdpi画面サイズが 5'5 インチのデバイスがあるため、リソースを維持することはできません。たとえば、samsung galaxy 1280x720 hdpi 5'5 インチの場合、このようなデバイスではグラフィック デザインが異なるため、854x480 hdpi と 1280x720 hdpi の両方のデバイスが同じディレクトリを使用することdrawable-hdpi wichは認められません。

何か案は?

4

2 に答える 2

0

少し前に、キャンバスとビットマップを使用していたアニメーションの壁紙を書いているときに、同様の問題がありました。デフォルトのレイアウト フォルダーを使用して、目的を達成できませんでした。

私の場合、たとえば、超大画面 (1280x800) の中密度デバイスは、通常の画面 (600x1024) の高密度デバイスと同じリソースを使用する必要があります。

リソースを 3 つのグループに分け、カスタム ルールを使用してそれらを選択することで、独自のソリューションを作成することにしました。

DisplayMetrics metrics = resources.getDisplayMetrics();
int screenSize = resources.getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK;

switch (metrics.densityDpi) {
case DisplayMetrics.DENSITY_LOW:
    if (screenSize == Configuration.SCREENLAYOUT_SIZE_SMALL || screenSize == Configuration.SCREENLAYOUT_SIZE_NORMAL) {
        return new SmallResourceProvider(resources);
    }
case DisplayMetrics.DENSITY_MEDIUM:
    if (screenSize == Configuration.SCREENLAYOUT_SIZE_NORMAL) {
        return new MediumResourceProvider(resources);
    }
default:
    return new LargeResourceProvider(resources);
}

多分これはあなたの場合に役立つでしょう。

于 2013-07-12T10:42:41.020 に答える
0

私も同じ奇妙な問題に直面していました。私の場合、Galaxy tab GT P7500 は drawable-sw720dp-XXHDPI フォルダーから画像を選択していました。XXHDPI フォルダーも持っていたからです。XXHDPI を削除すると、次の下位の XHDPI フォルダーが取得されます。

問題は、ドローアブル フォルダーの swxxxdp 修飾子にあります。画面幅を削除して、すべての密度の画像を 1 セットだけ使用すると、問題は解決したようです。ただし、7 インチと 10 インチのデバイスには異なるドローアブル セットが必要でした。私がしたことは、10 インチの画像と 7 インチの画像に異なる名前のセットを使用し、sw600dp と sw720dp の修飾子で 2 つの異なるレイアウトのセットを使用することでした。これがうまく機能する私の現在の構造です。ただし、Androidは drawables を外部化することを推奨しているため、これはリソースの使用方法として期待されるものではありません。残念ながら、私はより良い解決策を見つけることができませんでした。

layout-land
layout-sw600dp-land (uses image.png)
layout-sw720dp-land (image_large.png)

ドローアブルの場合、

drawble-mdpi (image.png & image_large.png)
drawable-hdpi 
drawable-xhdpi
drawable-xxhdpi
于 2013-12-04T05:57:48.917 に答える