0

パラメータとして dip(eg: width = 30dip, scroll bar until screen of screen) を使用しましたが、3.5インチの電話では問題なく見えますが、5インチの画面の電話では真ん中まで来ず、ここでは真ん中より下になります なぜ?

xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">
    <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="450dip"
        android:paddingLeft="10dip">

        <ImageView
            android:id="@+id/gdi_arrow_up"
            android:layout_width="27dip"
            android:layout_height="27dip"
            android:layout_marginLeft="10dip"
            android:scaleType="fitCenter"
            android:layout_marginBottom="-8dip"
            android:src="?attr/asListArrowUp"  />

         <include layout="@layout/main_menu"/>


        <ImageView
            android:id="@+id/gdi_arrow_down"
            android:layout_width="27dip"
            android:layout_height="27dip"
            android:scaleType="fitCenter"
            android:layout_marginBottom="-8dip"
            android:layout_below="@android:id/list"/>

    </RelativeLayout>
4

2 に答える 2

1

dip は密度非依存ピクセルを表します。これは、サイズが同じで密度が異なる 2 つの画面はその値を同じに扱うことを意味しますが、サイズが異なる (大と標準の) 2 つの画面では値の扱いが異なります。

お使いの 5 インチの電話は大きく、3.5 インチの電話は通常どおり問題が発生していると報告される場合がありますが、私にはよくわかりません。

また、実際のレイアウトでは、高さに match_parent を使用することをお勧めします。通常、viewGroups に幅を設定することはありません。

于 2013-05-10T14:39:57.663 に答える
1

RelativeLayout の LayoutParameters を screenWidth/2 として動的に設定します。これはすべてのデバイスで動作します。

onCreate で次のようにします:-

RelativeLayout rel = (RelativeLayout) findViewById(R.id.rel1);
int screenHeight = getWindowManager()
                    .getDefaultDisplay().getHeight();
rel.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, screenHeight/2));

お役に立てれば。

于 2013-05-10T14:40:28.727 に答える