4

AndroidマニフェストファイルのターゲットSDKバージョンを「3」に設定すると、大画面デバイスのレイアウトは、小画面デバイスのレイアウトを拡大したものになります。ターゲットSDKをより高いSDKに設定すると、画面密度ごとに個別のレイアウトを作成できるため、ユーザーエクスペリエンスが大幅に向上します。

ただし、私のレイアウトは主に画像で構成されています。画像は十分に大きいため、拡大する必要がないため、拡大してもすべての画面サイズで問題なく表示されるほどの高解像度です。さて、大画面でも見栄えがするので、小画面のレイアウトを作成して拡大する方がはるかに簡単です。APIレベル3に戻らずにその効果を得る方法はありますか?

4

5 に答える 5

6

重みパラメータを使用できます。
「重み」とは、特定のビューが描画された後に画面に占める余地がある場合に、そのビューが占める画面の量を指定するために使用される用語です。

次のように、aを作成してその中にLinearLayout2 つ配置するだけです。TextViews

<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
>
<TextView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="small"
    android:layout_weight="0.2"
    android:background="#123" />
 <TextView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_weight="0.8"
    android:text="huge"
    android:background="#456"
 />
</LinearLayout>

それに応じて、ビューがどのようにスペースを占有するかに気付くでしょう。小さい画面用に必要なレイアウトを作成し、ウェイト属性を指定すると、すべてが美しく調整されます

于 2012-10-26T15:37:42.677 に答える
4

大きな画面のレイアウトを指定しないでください。デフォルトでは、より具体的なレイアウトが利用可能でない限り、すべての画面に同じものを使用します。match_parent幅と高さ、およびイメージに使用している場合、scaleType="fitCenter"または"centerCrop"そのようなものは、実行されている画面サイズに合わせて表示する必要があります。

于 2012-10-26T15:37:18.117 に答える
2

アプリをタブレットと互換性のあるものにすることを忘れないでください。追加する必要があります

<supports-screens
    android:anyDensity="true"
    android:largeScreens="true"
    android:normalScreens="true"
    android:smallScreens="true"
    android:xlargeScreens="true" />

アプリマニフェストで。

于 2012-10-31T10:01:45.707 に答える
0

うーん。AbsoluteLayoutのようなものを使用していない限り、Androidはすでにこれを行っていると思いました。移行に役立ついくつかのトリックがあります。質問が何を求めているのか完全にはわかりませんが、試してみます。API レベル 3 はアスペクト比などでスケーリングしますか?

私は、携帯電話からタブレットへの UI の醜さのほとんどが幅を扱っていることを発見しました。特定の解像度で幅を固定するために入れることができるロジックがあります。それ以外の場合、レイアウトは見た目も動作も問題ありません。さまざまな dimens.xml を使用してアセットのサイズを設定したり、さまざまな画面サイズと密度に合わせてさまざまな dimens.xml のセットを使用したりするなど、他のトリックもあります。

各バージョンにすべてのディメンションを含める必要はありません。各値セットの基本バージョンがあれば、他のファイルで異なるディメンションを設定できます。

于 2012-11-02T15:50:53.473 に答える
-1

異なる画面サイズで画像のサイズを変更する唯一の方法は、9 パッチを使用することです。その件に関する詳細なリソースは次のとおりです。http://developer.android.com/tools/help/draw9patch.html

これは、レイアウトで相対的な幅/高さ (重量) と 9 パスでフォーマットされた画像を使用することだけができると思います。

于 2012-11-03T22:20:30.413 に答える