0

レイアウトを書きました。レイアウトには5つのボタンがあります。

http://imageshack.us/photo/my-images/607/layout.gif/

これが私のテーブルレイアウトです:

<TableLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:shrinkColumns="0,1"  android:stretchColumns="*">


<TableRow
    android:layout_height="wrap_content"
    android:layout_width="fill_parent"
    android:gravity="center_horizontal">
    <TextView
        android:layout_width="match_parent" 
        android:layout_height="wrap_content"
        android:textSize="14dp" 
        android:text="Hello"  
        android:layout_span="5"
        android:paddingTop="27dp"
        android:paddingBottom="25dp"
        android:textColor="#ffffff" 
        android:gravity="center" />
</TableRow> 

<TableRow>

    <FrameLayout
        android:layout_weight="0.2">
    </FrameLayout>   

    <FrameLayout
        android:layout_weight="0.2">
        <ImageButton
            android:id="@+id/ImageButton1"
            android:background="@drawable/ImageButton1"
            android:layout_width="97dp"
            android:layout_height="90dp" 
            android:layout_gravity="center"
            android:scaleType="center"
             />
    </FrameLayout>

    <FrameLayout
        android:layout_weight="0.2">
       <ImageButton
            android:id="@+id/ImageButton2"
            android:layout_width="97dp"
            android:layout_height="90dp"
            android:background="@drawable/ImageButton2"
            android:layout_gravity="center"
            android:scaleType="center" />           
    </FrameLayout>

    <FrameLayout
        android:layout_weight="0.2">
       <ImageButton
            android:id="@+id/ImageButton3"
            android:layout_width="97dp"
            android:layout_height="90dp"
            android:background="@drawable/ImageButton3"
            android:layout_gravity="center"
            android:scaleType="center" />
    </FrameLayout>

    <FrameLayout
        android:layout_weight="0.2">
    </FrameLayout>   

</TableRow>

<TableRow>

    <FrameLayout
        android:layout_weight="0.2">
    </FrameLayout>   

    <TextView
            android:textSize="12dp" 
            android:text="Text1"  
            android:padding="3dp"
            android:textColor="#fff" 
            android:gravity="center" />   

    <TextView
            android:textSize="12dp" 
            android:text="Text2"  
            android:padding="3dp"
            android:textColor="#fff" 
            android:gravity="center" />  

    <TextView
            android:textSize="12dp" 
            android:text="Text3"  
            android:padding="3dp"
            android:textColor="#fff" 
            android:gravity="center" />  

    <FrameLayout
        android:layout_weight="0.2">
    </FrameLayout>   

</TableRow>

<View
    android:layout_height="30dp" />

<TableRow>

    <FrameLayout
        android:layout_weight="0.2">
    </FrameLayout>   

    <FrameLayout
        android:layout_weight="0.2">

        <ImageButton
            android:id="@+id/ImageButton4"
            android:layout_width="97dp"
            android:layout_height="90dp"
            android:background="@drawable/ImageButton4"
            android:scaleType="center"
            android:layout_gravity="center" />
    </FrameLayout>

    <FrameLayout
        android:layout_weight="0.2">
        <ImageButton
            android:id="@+id/ImageButton5"
            android:layout_width="97dp"
            android:layout_height="90dp"
            android:background="@drawable/ImageButton5
            android:scaleType="center"
            android:layout_gravity="center" />        
    </FrameLayout>

    <FrameLayout
        android:layout_weight="0.2">
    </FrameLayout>

    <FrameLayout
        android:layout_weight="0.2">
    </FrameLayout>   

</TableRow>

</TableLayout>

私の大きなスマートフォンではすべてがうまく機能します。しかし、小さなスマートフォンで見ると、画面下部に十分なスペースがありません。テーブルレイアウトがすべてをスケーリングするように変更するにはどうすればよいですか。

私はこれを画像ボタンでここに与えました:

android:layout_width="97dp"
android:layout_height="90dp" 

それが、小さなスマートフォンの底に十分なスペースがない理由です。テーブルレイアウトは、画像ボタンを拡大縮小する必要があります。画像ボタンは正方形ではありません。そのような長方形。

テーブルのレイアウトは、水平方向に100%、垂直方向に100%にする必要があります。

4

1 に答える 1

1

問題はスケーリングによるものだと思います。画面サイズに応じてスケールダウンするわけではありません。hdpi、mdpi、ldpiの3つのカテゴリすべてに対して、適切な密度で新しいドローアブルを作成する必要があります。

必要な密度を計算するには、このツールを使用できます http://labs.skinkers.com/content/android_dp_px_calculator/

スケーリングは、画面サイズと画面密度の2つに依存します。

詳細については、開発者サイトを調べると、Androidが画像を大まかに拡大縮小する方法がわかります。 ここに画像の説明を入力してください

于 2012-09-12T15:53:54.310 に答える