私の目標は、デバイスの密度に応じて 3 つのレイアウトのいずれかを使用することです。2.3.3 (最も人気のある atm) SDK バージョンのオプションは何ですか? ありがとうございました。
3 に答える
あまり。
考慮すべき主な側面が 2 つあります。
- 画面密度。ldpi、mdpi、hdpi、xhdpi。これは、1 インチあたりのピクセル数です。これは、ピクセルのサイズに関連しています (画面ではありません)。
- 画面サイズ。小、標準、大、特大 - またはピクセル サイズで指定します。これは、実際の物理的なサイズに関連しています。
それらをどのように使用するかは、プロジェクトのニーズによって異なります。通常、さまざまな密度の画像を提供します (そのため、アイコンなどはすべてのデバイスで適切に表示されます)。ただし、非常に異なるサイズのデバイス (小型の携帯電話から 10 インチのタブレットまで) で適切に動作するアプリを構築する場合は、レイアウトも提供する必要があります。さまざまなサイズの画面に対応しています。たとえば、電話用、7 インチ タブレット用、10 インチ タブレット用などです。
http://developer.android.com/guide/practices/screens_support.html
複数の画面のサポートに関するAndroidのドキュメントを見てください。要点は、さまざまな命名規則(画面密度、画面サイズ、縦向き/横向きなど)に基づいてデバイスを対象とする複数のフォルダを作成できることです。漠然としたものでも、詳細なものでも構いません。たとえば、すべての xhdpi デバイスをターゲットにしたい場合は、「layout-xhdpi」という名前のレイアウト フォルダーを作成し、その中にレイアウトを作成すると、すべての xhdpi デバイスがそれを使用します。より具体的に、たとえば Galaxy Nexus を具体的にターゲットにしたい場合は、「layout-w360dp-port-xhdpi」という名前のフォルダーを作成できます。
私が好むもう 1 つの方法は、単一のレイアウト ファイルを持ち、さまざまな画面サイズをターゲットとする複数の「値」xml ファイルを持ち、値ファイルで、パディング/高さのために取り込まれた値を変更し、レイアウトでこれらの値を指すことです。例: 「values/dimensions.xml」
<?xml version="1.0" encoding="utf-8"?>
<resources>
<dimen name="webview_height">53dip</dimen>
<resources>
次に、レイアウトで:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" android:orientation="vertical" >
<WebView
android:layout_height="@dimen/webview_height"
android:id="@+id/mainWebViewMobile"
android:layout_width="match_parent"
></WebView>
</LinearLayout>
また、さまざまなデバイスをターゲットとする個別のフォルダー (「values-xhdpi/dimensions.xml」または「values-w360dp-port-xhdpi/dimensions.xml」など) に複数の dimension.xml を作成し、「webview_height」の値を変更できます。
密度ごとに異なるレイアウトを作成し、適切なフォルダーに配置するだけです
Android ドキュメントからこれを参照してください: http://developer.android.com/guide/practices/screens_support.html#qualifiers
res/layout/my_layout.xml // layout for normal screen size ("default")
res/layout-small/my_layout.xml // layout for small screen size
res/layout-large/my_layout.xml // layout for large screen size
res/layout-xlarge/my_layout.xml // layout for extra large screen size
res/layout-xlarge-land/my_layout.xml // layout for extra large in landscape orientation
res/drawable-mdpi/my_icon.png // bitmap for medium density
res/drawable-hdpi/my_icon.png // bitmap for high density
res/drawable-xhdpi/my_icon.png // bitmap for extra high density