2

我有一些 FrameLayout 来显示重叠的图像。在这个 FrameLayout 下,我想为一些点击操作显示一个标准按钮。

为了让我的工作更轻松,我想,我可以在 FrameLayout 下放置一个新的线性或相对布局——当然所有这些都在一个 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

首先,您将线性布局方向更改为垂直,其次无需使用另一个

布局你可以直接放按钮

例如:android:orientation="vertical"

于 2012-09-14T08:22:09.623 回答
0

先说:你第一个LinearLayout的方向不对。您应该使用垂直而不是水平,因为它会显示图像右侧而不是下方的按钮。

第二:无需将按钮包装到另一个 LinearLayout 中,因为它是一个单独的项目并附加到您的第一个 LinearLayout。

第三:要将按钮设置在另一个“位置”,请为您的顶部 LinearLayout 提供一个 ID,例如 'android:id="@+id/myLinear"',然后使用以下代码:

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 回答