0

私はEclipseを使用しています.dpで幅と高さが設定された画像とボタンを含むビューがあります:

<Button
    android:id="@+id/btn_menu_games"
    android:layout_width="70dp"
    android:layout_height="70dp"
    android:layout_gravity="center"
    android:background="@drawable/ico_games"
    android:onClick="goToGames" />

しかし、別のデバイスを使用すると、画像とボタンは画面に対して相対的に拡大縮小されないため、小さな画面では非常に大きく、大きな画面では非常に小さくなります。ビューで何か間違ったことをしていますか? マニフェストに何か設定する必要はありますか?

ありがとう。

完全なコード:

   <?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:background="@drawable/bg_portrait"
    android:gravity="center_horizontal"
    android:orientation="vertical" >


    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="234dp"
        android:layout_height="156dp"
        android:layout_marginBottom="15dp"
        android:layout_marginLeft="20dp"
        android:layout_marginRight="20dp"
        android:layout_marginTop="10dp"
        android:src="@drawable/flag" />


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

        <LinearLayout
            android:id="@+id/linearLayout2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            android:layout_marginRight="20dp" >




                <Button
                    android:id="@+id/btn_menu_games"
                    android:layout_width="70dp"
                    android:layout_height="70dp"
                    android:layout_gravity="center"
                    android:background="@drawable/ico_games"
                    android:onClick="goToGames" />




        <com.academyGeneric.MyTextView
            android:id="@+id/textView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:textColor="#8c0101"
            android:text="Games"
            android:layout_marginBottom="5dp"
            android:textAppearance="?android:attr/textAppearanceLarge" />


        <Button
            android:id="@+id/btn_menu_lessons"
            android:layout_width="70dp"
            android:layout_height="70dp"
            android:layout_gravity="center"
            android:background="@drawable/ico_lessons" />


       <com.academyGeneric.MyTextView
           android:id="@+id/textView2"
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:layout_gravity="center"
           android:text="Lessons"
           android:layout_marginBottom="5dp"
           android:textColor="#8c0101"
           android:textAppearance="?android:attr/textAppearanceLarge" />


          <Button
              android:id="@+id/btn_menu_settings"
              android:layout_width="70dp"
              android:layout_height="70dp"
              android:layout_gravity="center"
              android:background="@drawable/ico_settings"
              android:onClick="goToSettings" />

        <com.academyGeneric.MyTextView
            android:id="@+id/textView3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:text="Settings"
            android:textColor="#8c0101"
            android:textAppearance="?android:attr/textAppearanceLarge" />

</LinearLayout>


<LinearLayout
     android:id="@+id/linearLayout2"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:orientation="vertical"
     android:layout_marginLeft="20dp" >



            <Button
                android:id="@+id/btn_menu_dictionary"
                android:layout_width="70dp"
                android:layout_height="70dp"
                android:layout_gravity="center"
                android:background="@drawable/ico_dictionary"
                android:onClick="goToDictionary" />


        <com.academyGeneric.MyTextView
            android:id="@+id/textView4"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:text="Dictionary"
            android:layout_marginBottom="5dp"
            android:textColor="#8c0101"
            android:textAppearance="?android:attr/textAppearanceLarge" />


        <Button
            android:id="@+id/btn_menu_statistics"
            android:layout_width="70dp"
            android:layout_height="70dp"
            android:layout_gravity="center"
            android:background="@drawable/ico_stats" />

        <com.academyGeneric.MyTextView
        android:id="@+id/textView5"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:text="Statistics"
        android:layout_marginBottom="5dp"
        android:textColor="#8c0101"
        android:textAppearance="?android:attr/textAppearanceLarge"
         />


        <Button
            android:id="@+id/close"
            android:layout_width="70dp"
            android:layout_height="70dp"
            android:layout_gravity="center"
            android:background="@drawable/ico_exit"
            android:onClick="exit" />

        <com.academyGeneric.MyTextView
        android:id="@+id/textView6"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:text="Exit"
        android:textColor="#8c0101"
        android:textAppearance="?android:attr/textAppearanceLarge"
         />

        </LinearLayout>            

    </LinearLayout>

</LinearLayout>
4

1 に答える 1

1

特定のアスペクト比が本当に必要な場合は、ウェイトの使用を検討する必要があります。

線形レイアウトの親に 2 つのボタンがあり、両方の重みが 1 の場合、両方とも
画面の幅の 1/2を占めます。

画面に対するボタンの比率 = (view_weight/(すべてのビューの total_weights)

ここを見てください:http://blog.stylingandroid.com/archives/297

それ以外の場合、DP は正しいです。

于 2012-04-13T18:50:12.307 に答える