29

上記の Android デベロッパー ガイドのリンクからの抜粋:

320dp: 一般的な電話画面 (240x320 ldpi、320x480 mdpi、480x800 hdpi など)。
480dp: Streak のようなトゥイナー タブレット (480x800 mdpi)。
600dp: 7 インチ タブレット (600x1024 mdpi)。
720dp: 10 インチのタブレット (720x1280 mdpi、800x1280 mdpi など)

だから私はデザイナーからこれらの寸法のみで解像度320ピクセル/インチのグラフィックス(画像)を手に入れました

480x800 解像度

720x1280mdpi

800x1280mdpi

mdpi フォルダー、hdpi フォルダー、xhdpi フォルダーに配置する画像のサイズがわかりません。ほとんどの Android 携帯電話やタブレットで動作する 1 つのアプリケーションを作成したいですか?

4

4 に答える 4

37

さまざまなピクセル密度で使用するさまざまなグラフィック オブジェクトを作成できます。Android は mdpi (160 ピクセル/インチ) をベース密度として扱います。したがって、mdpi デバイスの場合、1 dp = 1 ピクセルです。高密度では、1 インチあたりのピクセル数が多くなります (hdpi の場合は 240、xhdpi の場合は 320)。Android は、デバイスのピクセル密度に関係なく、グラフィック イメージが画面上で同じ物理的寸法を占めるようにしようとします。したがって、見つかったのが mdpi リソースだけで、デバイスが hdpi の場合、グラフィックを 240/160 = 150% 拡大し、xhdpi のグラフィックのサイズを 2 倍にします。

この自動スケーリング (グラフィックの見栄えが悪くなる可能性があります) が必要ない場合は、独自のバージョンのグラフィック リソースを提供して、高密度で使用することができます。これらのグラフィックスは、Android が mdpi リソースをスケーリングするのと同じサイズにする必要があります。

画像ファイルに保存されたピクセル/インチはこれとは関係がないことに注意してください。これはすべて、プロジェクトのリソース ディレクトリにグラフィック ファイルを配置した場所に基づいています。に配置されたグラフィックスはres/drawable、 に配置されたグラフィックスと同様に、mdpi ディスプレイに適切なサイズであると見なされますres/drawable-mdpi。見つかった画像ファイルはres/drawable-hdpi、hdpi ディスプレイなどに適したサイズであると想定されます。プログラムが特定のデバイスで実行されると、Android は最初にそのデバイスの表示密度に一致するグラフィックを探します。見つからない代わりに異なる密度のものが見つかった場合は、それを使用し、上記のルールに基づいて画像を自動的にスケーリングします。

于 2012-08-01T05:40:30.453 に答える
11

代替を提供するリソースをリクエストすると、Android は現在のデバイス構成に応じて、実行時に使用する代替リソースを選択します。Android が代替リソースを選択する方法を示すために、次のドローアブル ディレクトリにそれぞれ同じ画像の異なるバージョンが含まれているとします。

drawable/
drawable-en/
drawable-fr-rCA/
drawable-en-port/
drawable-en-notouch-12key/
drawable-port-ldpi/
drawable-port-notouch-12key/

デバイス構成は次のとおりです。

Locale = en-GB 
Screen orientation = port 
Screen pixel density = hdpi 
Touchscreen type = notouch 
Primary text input method = 12key

デバイス構成を利用可能な代替リソースと比較することにより、Android はdrawable-en-port からドローアブルを選択します。

システムは、次のロジックで使用するリソースを決定します。

ここに画像の説明を入力

参照 : Android が最適なリソースを見つける方法

その他の参考資料 :密度の独立性代替リソースベスト プラクティスの提供

そして、完全なページSupporting Multiple Screensを読む必要があると言いますが、それよりも優れたドキュメントはないと思います...

于 2012-08-01T06:05:14.973 に答える
3

私はすべての画面サイズの断片化に混乱していますが、基本は次のとおりです。1.画像を操作するには、レイアウトの下にさまざまなフォルダーを作成する必要があります2.画像は、さまざまなフォルダーの下のdrawablesフォルダーにも存在します。3. 基本的な /layout および /drawable フォルダーを用意して、非特定のフォルダーに付随させる必要があります。 4. xhdpi から作業してから、画像を縮小します。

特定の画面フォルダーの例: /layout-hdpi /layout-xhdpi /drawable-hdpi /drawable-xhdpi

私が知っていることから: 480 x 800 は hdpi (S2、HTC Desire などの古い電話) 720 x 1280 は xhdpi (S3、Galaxy Nexus などの新しい電話)

基本的に、電話に応じて、Android は必要なフォルダーからリソースを取得し、何もない場合はメインの '\layout' または '\drawable' フォルダーから取得します。たとえば、Galaxy Nexus で実行されているアプリは、フォルダーが存在する場合、「\layout-xhdpi」からリソースを取得します。

于 2012-08-01T05:40:22.090 に答える
0

はい、1 つのアプリを作成できますが、/res/drawable、/res/drawable-mdpi、/res/drawable-hdpi のフォルダーを作成し、すべての画面サイズのコンテンツを追加する必要がありました

于 2012-08-01T05:43:08.563 に答える