创建重叠图像视图的线性布局

时间:2014-06-27 09:38:59

标签: android android-layout android-listview imageview android-linearlayout

我需要在Android中像Spider Solitaire一样在Android中创建一堆重叠的ImageViews。此外,我需要能够动态添加更多ImageViews。请提出建议的方法。我可以使用LinearLayout(没有必要。无论什么工作都可以)?如果是这样,我该如何完成重叠?

注意:所有ImageViews都会有相同的重叠量,因此无需担心屏幕截图中未打开的卡片。

solitaire

谢谢

3 个答案:

答案 0 :(得分:0)

用户LayerList

A LayerDrawable is a drawable object that manages an array of other drawables. 
Each drawable in the list is drawn in the order of the list—the last drawable in the list is drawn on top.

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
      <bitmap android:src="@drawable/android_red"
        android:gravity="center" />
    </item>
    <item android:top="10dp" >
      <bitmap android:src="@drawable/android_green"
        android:gravity="center" />
    </item>
    <item android:top="20dp" >
      <bitmap android:src="@drawable/android_blue"
        android:gravity="center" />
    </item>
</layer-list>

注意:以下图片使用项目属性为android:left =&#34; 10dp&#34;,android:left =&#34; 20dp&#34;。

enter image description here

答案 1 :(得分:0)

您可以使用FrameLayout。以下布局是3 ImageViews

的示例
<FrameLayout 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" >

    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="200dp"
        android:layout_height="300dp"
        android:background="#f00" />

    <ImageView
        android:id="@+id/imageView2"
        android:layout_width="200dp"
        android:layout_height="300dp"
        android:layout_marginLeft="20dp"
        android:layout_marginTop="20dp"
        android:background="#0f0" />

    <ImageView
        android:id="@+id/imageView3"
        android:layout_width="200dp"
        android:layout_height="300dp"
        android:layout_marginLeft="40dp"
        android:layout_marginTop="40dp"
        android:background="#00f" />

</FrameLayout>

答案 2 :(得分:0)

我认为您不能仅使用Linearlayout来实现此目的。

但您可以使用LayerList

  

LayerDrawable是一个可绘制对象,用于管理其他数组   可绘制。列表中的每个drawable都按照顺序绘制   list - 列表中的最后一个drawable被绘制在顶部。

借助LayerList,您可以实现以下目标:

preview

语法

<?xml version="1.0" encoding="utf-8"?>
<layer-list
    xmlns:android="http://schemas.android.com/apk/res/android" >
    <item
        android:drawable="@[package:]drawable/drawable_resource"
        android:id="@[+][package:]id/resource_name"
        android:top="dimension"
        android:right="dimension"
        android:bottom="dimension"
        android:left="dimension" />
</layer-list>