在customView中的ImageView上叠加多个图像视图

时间:2014-05-09 12:35:13

标签: android android-layout view android-custom-view

我想在Android中创建一个视图,该视图在此ImageView上包含TextViewImageView。但是我们可以在Android中创建的自定义视图包含的属性只能是某些类型,如本文所述:Defining custom attrs因此我无法定义具有ImageView属性的自定义视图TextView属性。 我不想这样定义它:

<FrameLayout android:id="@+id/frame_layout"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">

      <ImageView
         android:id="@+id/card_11"
         android:layout_width="@dimen/card_width"
         android:layout_height="@dimen/card_height"
         android:src="@drawable/carte_vierge_bleue"
         android:scaleType="fitXY"
         android:clickable="true" 
         android:visibility="visible"
         android:onClick="onCardClicked"/>

    <TextView android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="1234 5678 1234 5678"
        android:layout_gravity="center"/>

</FrameLayout>

因为我想在之后的第一个ImageView上添加其他图片,所以我希望有一个自定义视图,我可以根据需要进行修改,并添加ImageView个按照我的意愿,这种做法会使布局文件很长... 有什么想法吗?

1 个答案:

答案 0 :(得分:2)

如果我理解正确,您可以使用 RelativeLayout 和任意数量的ImageViews。 例如:

<RelativeLayout android:id="@+id/frame_layout"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">

      <ImageView
         android:id="@+id/card_11"
         android:layout_width="@dimen/card_width"
         android:layout_height="@dimen/card_height"
         android:src="@drawable/carte_vierge_bleue"
         android:scaleType="fitXY"
         android:clickable="true" 
         android:visibility="visible"
         android:onClick="onCardClicked"/>

     <ImageView
         android:id="@+id/card_12"
         android:layout_width="@dimen/card_width"
         android:layout_height="@dimen/card_height"
         android:src="@drawable/carte_vierge_bleue"
         android:scaleType="fitXY"
         android:clickable="true" 
         android:visibility="visible"
         android:onClick="onCardClicked"/>

    <TextView android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="1234 5678 1234 5678"
        android:layout_gravity="center"/>

</RelativeLayout>

TextView将显示在 card12 ImageView 的顶部,它将显示在 card11 ImageView 的顶部,依此类推。

希望它有所帮助,Mattia