如何让View之间重叠指定的量?
How to make Views overlap each other by a specified amount?
假设我正在尝试堆叠卡片,我想将王后放在国王之上,但国王的前 20 左右像素仍然可见,这样您就可以看出它在王后之下.你怎么做到这一点?
我已经定义了一个带有线性布局容器的网格布局。每个容器包含一个图像按钮。我能得到的最接近的是在占用的图像按钮下缩小的图像按钮。
像这样:
http://i.stack.imgur.com/broaD.png
我想堆叠图像按钮,但底层图像按钮仍可点击。
编辑:
我能够通过在这里进行广泛搜索并了解很多关于视图的知识来弄清楚。
我现在正在使用
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
lp.setMargins(0, 0, 0, -60);
view.setLayoutParams(lp);
您可以为顶视图设置android:layout_marginBottom="-50dp"
,以便与下面的视图重叠。此处,50dp 是您希望重叠视图的量。
像这样:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:orientation="vertical" >
<ImageButton
android:id="@+id/imageButton1"
android:layout_width="100dp"
android:layout_height="100dp"
android:background="#ff0000"
android:layout_marginBottom="-50dp" />
<ImageButton
android:id="@+id/imageButton2"
android:layout_width="100dp"
android:layout_height="100dp"
android:background="#00ff00"
android:layout_marginBottom="-50dp" />
<ImageButton
android:id="@+id/imageButton3"
android:layout_width="100dp"
android:layout_height="100dp"
android:background="#0000ff" />
</LinearLayout>
</RelativeLayout>
通过代码:
ImageButton imageButton1 = (ImageButton) findViewById(R.id.imageButton1);
LinearLayout.LayoutParams layoutParams = (LayoutParams) imageButton1
.getLayoutParams();
layoutParams.setMargins(layoutParams.leftMargin,
layoutParams.topMargin, layoutParams.rightMargin,
(layoutParams.bottomMargin - 50));
imageButton1.setLayoutParams(layoutParams);
假设我正在尝试堆叠卡片,我想将王后放在国王之上,但国王的前 20 左右像素仍然可见,这样您就可以看出它在王后之下.你怎么做到这一点?
我已经定义了一个带有线性布局容器的网格布局。每个容器包含一个图像按钮。我能得到的最接近的是在占用的图像按钮下缩小的图像按钮。
像这样: http://i.stack.imgur.com/broaD.png
我想堆叠图像按钮,但底层图像按钮仍可点击。
编辑: 我能够通过在这里进行广泛搜索并了解很多关于视图的知识来弄清楚。 我现在正在使用
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
lp.setMargins(0, 0, 0, -60);
view.setLayoutParams(lp);
您可以为顶视图设置android:layout_marginBottom="-50dp"
,以便与下面的视图重叠。此处,50dp 是您希望重叠视图的量。
像这样:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:orientation="vertical" >
<ImageButton
android:id="@+id/imageButton1"
android:layout_width="100dp"
android:layout_height="100dp"
android:background="#ff0000"
android:layout_marginBottom="-50dp" />
<ImageButton
android:id="@+id/imageButton2"
android:layout_width="100dp"
android:layout_height="100dp"
android:background="#00ff00"
android:layout_marginBottom="-50dp" />
<ImageButton
android:id="@+id/imageButton3"
android:layout_width="100dp"
android:layout_height="100dp"
android:background="#0000ff" />
</LinearLayout>
</RelativeLayout>
通过代码:
ImageButton imageButton1 = (ImageButton) findViewById(R.id.imageButton1);
LinearLayout.LayoutParams layoutParams = (LayoutParams) imageButton1
.getLayoutParams();
layoutParams.setMargins(layoutParams.leftMargin,
layoutParams.topMargin, layoutParams.rightMargin,
(layoutParams.bottomMargin - 50));
imageButton1.setLayoutParams(layoutParams);