1

ImageView の特定の位置にいくつかの ImageButtons を貼り付けようとしています。問題は、ImageButton に絶対レイアウトを使用する必要があり、画面の解像度を変更すると、すべての ImageButton がその場所から移動することです。

私はすべてのウェブで答えを探していますが、何も見つかりません。

ありがとうございました。

4

2 に答える 2

0

レイアウトで絶対位置を使用しないことをお勧めします。ボタンを正しい位置に配置できる場合は、コンテナーとマージンを使用します。

デバイスに応じて絶対位置が本当に必要な場合は、解像度の種類ごとに特定の寸法を使用できます。ここを参照してください:

http://developer.android.com/training/basics/supporting-devices/screens.html

于 2013-04-19T10:26:16.043 に答える
0

絶対レイアウトの代わりに相対レイアウトを使用してください。相対レイアウトが気に入らない場合は、絶対レイアウトを使用できます。これに問題はありませんが、ほとんどの状況では実用的ではありません。絶対レイアウトを使用して、画面上のビューを次のようにスケーリングできます。ビューとその階層化されたサブビューを相対的にスケーリングします。

ダイアン・ハックボーン (Google で働く) は次のように述べています

もう一度言いますが、今後のリリースから AbsoluteLayout を削除するつもりはありませんが、使用しないよう強くお勧めします。

あなたが私を信じないことを選択した場合、あなたは大歓迎ですが、あなたがその決定を下すことについて私は責任を負いません.

ボタンを重ねる方法は次のとおりです。

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

    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:src="@drawable/image" />

    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true"
        android:layout_marginBottom="34dp"
        android:layout_marginRight="40dp"
        android:text="Button" />

    <Button
        android:id="@+id/button3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignRight="@+id/button2"
        android:layout_below="@+id/button1"
        android:layout_marginRight="37dp"
        android:layout_marginTop="108dp"
        android:text="Button" />

</RelativeLayout>
于 2013-04-19T10:34:17.350 に答える