1

layoutいくつかを使用してAndroidを作成しましたImageButtons。私のレイアウトは小さな画面(たとえば3.6インチから4.2インチ)ではうまく機能しますが、7インチまたは9インチのタブレットでアプリケーションを使用するlayoutと、ポートレートモードとランドスケープモードの両方で見苦しくなります。にはピクセルサイズを使用しませんでしたImageButton。どうすればこれを修正できますか?

4インチ画面の場合:

3.8で

7インチ画面の場合:

7日に

これは私のレイアウトコードです:

<?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" >

   <LinearLayout
       xmlns:android="http://schemas.android.com/apk/res/android"
       android:layout_width="fill_parent"
       android:layout_height="35dp"
       android:background="#81BEF7"
       android:orientation="vertical"
       android:scrollbars="vertical" >

        <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
                android:id="@+id/buttonlayout" android:orientation="horizontal"
                android:layout_width="fill_parent" android:layout_height="wrap_content"
                android:height="32dp" android:gravity="left|top" android:background="#000000"
                android:paddingTop="2dp" android:paddingBottom="2dp">
                <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
                        android:id="@+id/buttonlayout2" android:orientation="horizontal"
                        android:layout_height="wrap_content" android:gravity="left|center_vertical"
                        android:layout_gravity="left" android:layout_width="wrap_content">
                        <ImageButton android:id="@+id/imgbtn1"
                                android:layout_width="32dp" android:layout_height="32dp"
                                android:background="@drawable/logo" />
                        <TextView android:id="@+id/txtTest" android:layout_width="fill_parent"
                                android:layout_height="fill_parent" android:textStyle="bold"
                                android:text="Max-Apps" android:textColor="#ffffff"
                                android:textSize="15sp" android:gravity="center_vertical"
                                android:paddingLeft="5dp" />
                        <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
                                android:id="@+id/buttonlayout2" android:orientation="horizontal"
                                android:layout_height="wrap_content" android:gravity="right"
                                android:layout_gravity="right" android:layout_width="fill_parent">
                        </LinearLayout>
                </LinearLayout>
                <TableLayout android:id="@+id/TableLayoutTop"
                        android:layout_gravity="left" android:scrollbars="horizontal|vertical"
                        android:scrollbarAlwaysDrawVerticalTrack="true"
                        android:scrollbarAlwaysDrawHorizontalTrack="true"
                        android:layout_height="wrap_content" android:layout_width="fill_parent"
                        android:orientation="horizontal">
                        <TableRow android:id="@+id/TableRowTop"
                                android:layout_height="wrap_content" android:layout_width="fill_parent" />
                </TableLayout>
        </LinearLayout>
</LinearLayout>
<HorizontalScrollView
        android:id="@+id/scrollView1"
        android:layout_height="50dp"
        android:layout_width="fill_parent" >

<LinearLayout
    android:id="@+id/select_names_tags_ll1"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:background="@android:drawable/bottom_bar" 
    android:orientation="horizontal"
    android:paddingBottom="1.0dip"
    android:paddingLeft="4.0dip"
    android:paddingRight="4.0dip"
    android:paddingTop="5.0dip" 
    android:gravity="center">

    <Button
        android:id="@+id/btnPageTwo"
        android:layout_width="80dp"
        android:layout_height="wrap_content"        
        android:padding="5dp"
        android:text="Featured" 
        />

    <Button
        android:id="@+id/button3"
        android:layout_width="130dp"
        android:layout_height="wrap_content"
        android:padding="5dp"
        android:text="Category"
        android:onClick="onClickCategory" />

    <Button
        android:id="@+id/button2"
        android:layout_width="130dp"
        android:layout_height="wrap_content"
        android:padding="5dp"
        android:text="Top Download" 
        android:onClick="onClickList"/>

    <Button
        android:id="@+id/button3"
        android:layout_width="130dp"
        android:layout_height="wrap_content"
        android:padding="5dp"
        android:text="About us" />
</LinearLayout>    
</HorizontalScrollView>

<ScrollView
        android:id="@+id/scrollView2"
        android:layout_height="fill_parent"
        android:layout_width="fill_parent" >

        <LinearLayout
            android:id="@+id/linearLayout1"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical" >

<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true">

    <LinearLayout
        android:orientation="horizontal"        
        android:paddingLeft="4.0dip"
        android:paddingTop="5.0dip"
        android:paddingRight="4.0dip"
        android:paddingBottom="1.0dip"
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content"
        android:layout_below="@+id/TextView01">

        <ImageButton
            android:id="@+id/imageButton1"
            android:layout_width="wrap_content" 
            android:layout_weight="1"
            android:layout_height="wrap_content"
            android:layout_margin="2dip"
            android:background="@drawable/winnie"
            android:onClick="onClickPageTwo" /> 0       

        <ImageButton
                 android:id="@+id/imageButton2"
                 android:layout_width="wrap_content" 
                 android:layout_weight="1"
                 android:layout_height="wrap_content"
                 android:layout_margin="2dip"                                 
                 android:background="@drawable/games"
                 android:onClick="onClickPageTwo" /> 
    </LinearLayout>   
</RelativeLayout>

<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true">

    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content"
        android:gravity="center_horizontal" 
        android:layout_below="@+id/TextView01">

        <ImageButton
            android:id="@+id/imageButton1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@drawable/papago"
            android:onClick="onClickPageTwo" />
    </LinearLayout>
</RelativeLayout>

<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true">

    <LinearLayout
        android:orientation="horizontal"        
        android:paddingLeft="4.0dip"
        android:paddingTop="1.0dip"
        android:paddingRight="4.0dip"
        android:paddingBottom="1.0dip"
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content"
        android:layout_below="@+id/TextView01">        

        <ImageButton
                 android:id="@+id/imageButton3"
                 android:layout_width="fill_parent" 
            android:layout_weight="1"
                 android:layout_height="wrap_content"
                 android:layout_margin="2dip"                                 
                 android:background="@drawable/winnie"
                 android:onClick="onClickPageTwo"  />

        <ImageButton
            android:id="@+id/imageButton4"
            android:layout_width="fill_parent" 
            android:layout_weight="1"
            android:layout_height="wrap_content"
            android:layout_margin="2dip"
            android:background="@drawable/mickey"
            android:onClick="onClickPageTwo" />
    </LinearLayout>   
</RelativeLayout>           


<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content"    
    android:layout_centerHorizontal="true">

    <LinearLayout
        android:orientation="horizontal"        
        android:paddingLeft="4.0dip"
        android:paddingTop="1.0dip"
        android:paddingRight="4.0dip"
        android:paddingBottom="1.0dip"
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content"
        android:gravity="center_horizontal" 
        android:layout_below="@+id/TextView01">

        <ImageButton
            android:id="@+id/imageButton1"
            android:layout_width="wrap_content"            
            android:layout_height="wrap_content"
            android:layout_margin="1dip"
            android:background="@drawable/fb"                         
            android:onClick="onClickPageTwo" />
    </LinearLayout>   
</RelativeLayout>
        </LinearLayout>            
    </ScrollView>

</LinearLayout>
4

2 に答える 2

2

(1)さまざまなサイズの画像をさまざまなフォルダに入れることができます。つまり、大画面、中画面、低サイズ画面のそれぞれに、hdpi、mdpi、ldpiがあります。デバイスは、サイズに応じて自動的に画像を選択します。

(2)「res」フォルダに「layout-land」という名前の新しいフォルダを作成し、このフォルダに(メインのxmlファイルと同じ)同じ名前のxmlファイルを作成します。メインのxmlファイルのコードをコピーしてこのファイルに貼り付けるだけです。次に、アクティビティクラスに「onConfigurationChanged()」メソッドを作成(実際​​にはオーバーライド)し、「onCreate()」メソッドのコードをコピーして貼り付けます。

上記の2つの手順を実行すると、デバイスのサイズや向きに関係なく、アプリのレイアウトが常に正しく、希望どおりに表示されることがわかります。

于 2012-06-16T10:12:06.190 に答える
2

可能な画面サイズに合わせてレイアウトと画像を設計し、以下のようにそれぞれのフォルダーに配置する必要があります。

 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

http://developer.android.com/design/index.htmlを読むことに時間を費やしてください。

于 2012-06-16T04:04:47.373 に答える