我想在Android中创建一个视图,该视图在此ImageView
上包含TextView
和ImageView
。但是我们可以在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
个按照我的意愿,这种做法会使布局文件很长...
有什么想法吗?
答案 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