0

私は長い間、レイアウトの問題と画面サイズの作業に費やしてきました。私はここでAndroidのドキュメントを読みました。これは、完全に理にかなっています:http: //developer.android.com/guide/practices/screens_support.html

これで、すべての要素がDIP(密度に依存しないピクセル)を使用するため、さまざまな画面サイズでまったく同じサイズを表示するアプリができました。

ただし、目の前に2つのデバイスがあり、一方が他方よりも大きいため、わずかに小さい画面サイズ(Desire Z)よりも大きい画面サイズ(Sensation XE)の下部に空きスペースがあります。

Androidドキュメントを読むと、一般的な解決策は、DIPの数が異なるxlarge、large、normal、smallの画面サイズのレイアウトを作成することです。

それは素晴らしいことですが、非常に複雑なレイアウト(多くのカスタムビュー、多くのボタン、3つのテキストビュー、ライトアップできるように分離された多くの画像)を使用すると、これらのレイアウトを再作成するのは大変な作業です。

ただし、レイアウトは引き伸ばされていれば問題ありません。たとえば、Desire Zの外観を考慮し、文字通りすべてを拡大して大きな画面に合わせる場合は、ここでの拡大は大きな問題にはならないため、問題ありません。

私の質問は、レイアウトを4回再作成せずにそれを行う方法はありますか?はい、ほとんどコピーして貼り付けることができますが、持っているものを伸ばすだけでとても便利です。

タブレットデバイスでテストしたところ、うまく表示されましたが、すべてが小さく、画面いっぱいに表示されませんでした。異なるフォルダ(xhdpiからldpiまで)に異なるサイズの画像があるので、正しい画像を選択することは問題ではないはずです。

おかげで、どんな助けでも大いに感謝されます。

4

2 に答える 2

0

はい、一般的に、特定のウィジェットでandroid:layout_widthおよび/またはandroid:layout_heightのfill_parentを使用して、レイアウトに合わせて物事を拡大できます。LinearLayoutの一連のウィジェットに対してlayout_weightを適切に設定することにより、比例してスケーリングすることもできます。それをどのように行うかは、実際には何をしたいかによって異なり、要約で答えるのは非常に困難です。特に何かをする方法についての例と質問がある場合、それは答えるのがより簡単かもしれません。

次に、fill_parentを使用してさまざまな画面サイズを処理するRelativeLayoutの例を示します。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >
    <TextView 
        android:id="@+id/first"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="#ff880000"
        android:text="Some text" />
    <TextView 
        android:id="@+id/second"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@id/first"
        android:layout_toRightOf="@id/first"
        android:background="#ff008800"
        android:text = "More text" />
    <TextView 
        android:id="@+id/third"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/first"
        android:background="#ff000088"
        android:text="Even more text" />
    <TextView 
        android:id="@+id/fourth"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_below="@id/third"
        android:background="#ff008888"
        android:text="The last text" />
    </RelativeLayout>
于 2012-03-05T12:36:39.037 に答える
0

Androidのドキュメントに従って、相対レイアウトを使用してニーズを満たすことができます。ビュー内の要素の相対位置を使用します。次の属性を使用できます。

属性の完全なリストについては、ここをクリックしてください

于 2016-10-07T08:56:08.033 に答える