0

すべてのタイプのタブレットに適した次のレイアウトを作成したいと思います。ドローアブルに配置して編集することで異なる設定を設定できることは知っていますが、それを実現するための代替手段はありますか? 以下は、7 インチ サイズのすべてのタブレット用に作成するという私の意図です。 ここに画像の説明を入力

以下は私のxmlコードです:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
    >
<TextView
    android:id="@+id/widget38"
    android:layout_width="480dp"
    android:layout_height="45dp"
    android:background="@color/White"
    android:text="Reminder"
    android:textSize="20dp"
    android:textColor="@color/Black"
    android:layout_alignParentTop="true"
    android:layout_alignParentLeft="true" />

<TextView
    android:id="@+id/label"
    android:layout_width="476dp"
    android:layout_height="70dp"
    android:layout_alignParentLeft="true"
    android:layout_alignParentRight="true"
    android:layout_below="@+id/widget38"
    android:background="@color/White"
    android:text="DID you have your Pill?"
    android:textColor="@color/Black"
    android:textSize="40dp" />

<Button
    android:id="@+id/yes"
    android:layout_width="224dp"
    android:layout_height="161dp"
    android:layout_alignParentBottom="true"
    android:layout_alignParentLeft="true"
    android:layout_alignRight="@+id/widget38"
    android:layout_below="@+id/label"
    android:background="@color/Green"
    android:text="Yes" />

<Button
    android:id="@+id/no"
    android:layout_width="239dp"
    android:layout_height="161dp"
    android:layout_alignParentBottom="true"
    android:layout_alignParentRight="true"
    android:layout_below="@+id/label"
    android:layout_toRightOf="@+id/widget38"
    android:background="@color/Red"
    android:text="No/Cancel" />

</RelativeLayout>

アラートを作成する私のJavaコード:

Button button=(Button)findViewById(R.id.button1);
        button.setOnClickListener(new View.OnClickListener() {

            @SuppressWarnings("deprecation")
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub


                View view= getLayoutInflater().inflate(R.layout.custom, null);
                final AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);


                builder.setView(view);
                // set the custom dialog components - text, image and button
                    TextView t=(TextView)view.findViewById(R.id.widget38);
                TextView text = (TextView)view.findViewById(R.id.label);

                Button yesButton = (Button) view.findViewById(R.id.yes);
                Button noButton=(Button)view.findViewById(R.id.no);



                final AlertDialog dialog=builder.create();  

                noButton.setOnClickListener(new OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        dialog.dismiss();
                    }
                });



                yesButton.setOnClickListener(new OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        dialog.dismiss();
                    }
                });

            Display display = getWindowManager().getDefaultDisplay(); 
                int width = display.getWidth();
                int height = display.getHeight();

                dialog.show();
                dialog.getWindow().setLayout(width, height);

回答に基づいてコードを編集し、Eclipse IDE で正しく表示されますが、エミュレーターで試してみると、非常に異なって表示されます。復唱できません..助けてください. nexus 7エミュレーターに表示される出力ですが、Eclipse xmlエディターでは正しく表示されます

 <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    >

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
         >

        <TextView 
            android:id="@+id/ReminderMessage"
          android:layout_width="fill_parent"  
          android:layout_height="match_parent"
            android:background="@color/Aqua"
        android:textColor="@color/Black"
    android:textSize="10dp"
            />

    </RelativeLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="3" 
        android:baselineAligned="false"
        android:layout_alignParentLeft="true"
    android:layout_alignParentRight="true"

        >

        <RelativeLayout
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:background="#0F0" >

            <Button
                android:id="@+id/yes"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:text="Yes"
            android:background="@color/Green"
            android:layout_alignParentBottom="true"
    android:layout_alignParentLeft="true"
    android:layout_below="@+id/ReminderMessage"


                >
            </Button>



        </RelativeLayout>

        <RelativeLayout
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:background="#F00" >


            <Button
                android:id="@+id/no"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:text="No/Cancel"
            android:background="@color/Red"
            android:layout_alignParentBottom="true"
    android:layout_alignParentRight="true"
    android:layout_below="@+id/ReminderMessage"
                >
            </Button>

        </RelativeLayout>

    </LinearLayout>

</LinearLayout>
4

1 に答える 1

1

編集:線形レイアウトの逆の重み付けを表示するように改訂されました。

サイズごとに異なる外観が必要な場合は、layout/layout-large/layout-xlarge フォルダーを使用して、さまざまなサイズ範囲 (例: 7 インチ) に固有のアラートを定義する最も簡単な方法になります。

IDE として Eclipse を使用している場合は、[すべての画面] を選択して、さまざまなデバイスの概要を把握します。

それ以外に、特定の比率を念頭に置いている場合、線形レイアウトはパーセントで定義する簡単な方法です. これがlinearlayoutsのあなたのものです(画面サイズ全体で比率が維持されます):

ここに画像の説明を入力

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="3" >

    </RelativeLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1" >

        <RelativeLayout
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:background="#0F0" >

        </RelativeLayout>

        <RelativeLayout
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:background="#F00" >

        </RelativeLayout>

    </LinearLayout>

</LinearLayout>
于 2013-04-07T01:48:58.873 に答える