2

重なり合う画像を表示するためのFrameLayoutがいくつかあります。このFrameLayoutの下に、クリックアクション用の標準ボタンを表示したいと思います。

作業を簡単にするために、FrameLayoutの下に新しい線形または相対レイアウトを配置できると思いました。確かにすべてが1つのLinearLayoutに含まれています。

しかし、この方法は私にはうまくいきません。

ボタンをレイアウトに配置したり、プログラムで位置を管理したりせずに、FrameLayout全体の下にボタンを表示するための最良の方法は何ですか?

<?xml version="1.0" encoding="utf-8"?>
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<FrameLayout
    android:id="@+id/framelayout"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="top|left" >
     <ImageView
         android:id="@+id/coverimg"
         android:layout_width="fill_parent"
         android:layout_height="wrap_content"
         android:layout_gravity="top|left"
         android:maxHeight="100dp"
         android:minHeight="130dp"
         android:minWidth="130dp"
         android:src="@drawable/cover_img" />
     <ImageView
         android:id="@+id/imageView2"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_gravity="center_vertical"
         android:layout_marginLeft="100dp"
         android:src="@android:drawable/ic_media_play" />
<ProgressBar
        android:id="@+id/progressBar1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
        android:visibility="gone" />
</FrameLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<Button
    android:id="@+id/button1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:text="Button" />
</LinearLayout>
</LinearLayout>
4

2 に答える 2

0

最初に線形レイアウトの向きを垂直に変更し、次に別のレイアウトを使用する必要はありません

レイアウトuはボタンを直接置くことができます

例:android:orientation = "vertical"

于 2012-09-14T08:22:09.623 に答える
0

最初に言うと、最初のLinearLayoutの向きが間違っています。horizo​​ntelの代わりにverticalを使用する必要があります。これは、画像の下ではなく、画像の右側にボタンが表示されるためです。

2番目:ボタンを別のLinearLayoutにラップする必要はありません。これは、単一のアイテムであり、最初のLinearLayoutにアタッチされるためです。

3番目:ボタンを別の「場所」に設定するには、一番上のLinearLayoutに「android:id = "@ + id / myLinear"」のようなIDを付けてから、次のコードを使用します。

LinearLayout myLinear = (LinearLayout)this.findViewById(R.id.myLinear);
LayoutParams lp = new LinearLayout.LayoutParams(Gravity.CENTER);
myLinear.setLayoutParams(lp);

多分これはうまくいくでしょう:

LinearLayout myLinear = (LinearLayout)this.findViewById(R.id.myLinear);
myLinear.setLayoutParams(new LinearLayout.LayoutParams(Gravity.CENTER));

私があなたを助けることができるといいのですが?

于 2012-09-14T08:14:43.280 に答える