我想开发一个既可以用作 ImageView 又可以用作 TextView 的视图。通常可以通过扩展这两个类来实现,但 Java 不支持多重继承。
那么有可能做到这一点吗?如何 ?
我知道我发布这个很晚,你可能也解决了这个问题!仍然想分享一个工作。
我有类似的要求,并意识到 GridView 不是最适合这个。我通过使用 TableLayout 并将 TableRows 的元素定义为 ImageView 或 TextView 来实现这一点。如果您有静态 UI 结构,这可以作为一种解决方法,这意味着您知道哪个表索引应该包含哪个元素。希望这可以帮助某人。
<TableLayout
android:id="@+id/tableLayout3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:shrinkColumns="*"
android:stretchColumns="*"
android:layout_below="@+id/tagGrid">
<TableRow
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TextView
android:layout_height="@dimen/activity_vertical_margin"
android:layout_width="@dimen/activity_horizontal_margin"/>
<ImageView
android:layout_height="@dimen/activity_vertical_margin"
android:layout_width="@dimen/activity_horizontal_margin"
android:src="@drawable/orange"/>
<ImageView
android:layout_height="@dimen/activity_vertical_margin"
android:layout_width="@dimen/activity_horizontal_margin"
android:src="@drawable/blue"/>
<ImageView
android:layout_height="@dimen/activity_vertical_margin"
android:layout_width="@dimen/activity_horizontal_margin"
android:src="@drawable/yellow"/>
<ImageView
android:layout_height="@dimen/activity_vertical_margin"
android:layout_width="@dimen/activity_horizontal_margin"
android:src="@drawable/milkman"/>
</TableRow>
<TableRow
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<ImageView
android:layout_height="@dimen/activity_vertical_margin"
android:layout_width="@dimen/activity_horizontal_margin"
android:src="@drawable/check"/>
<TextView
android:id="@+id/tv1"
android:layout_height="@dimen/activity_vertical_margin"
android:layout_width="@dimen/activity_horizontal_margin"
android:text="10.4"
android:gravity="center" />
<TextView
android:id="@+id/tv2"
android:layout_height="@dimen/activity_vertical_margin"
android:layout_width="@dimen/activity_horizontal_margin"
android:text="10.4"
android:gravity="center" />
<TextView
android:id="@+id/tv3"
android:layout_height="@dimen/activity_vertical_margin"
android:layout_width="@dimen/activity_horizontal_margin"
android:text="10.4"
android:gravity="center" />
<TextView
android:id="@+id/tv4"
android:layout_height="@dimen/activity_vertical_margin"
android:layout_width="@dimen/activity_horizontal_margin"
android:text="10.4"
android:gravity="center" />
</TableRow>
<TableRow
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<ImageView
android:layout_height="@dimen/activity_vertical_margin"
android:layout_width="@dimen/activity_horizontal_margin"
android:src="@drawable/cross"/>
<TextView
android:id="@+id/tv5"
android:layout_height="@dimen/activity_vertical_margin"
android:layout_width="@dimen/activity_horizontal_margin"
android:text="10.4"
android:gravity="center" />
<TextView
android:id="@+id/tv6"
android:layout_height="@dimen/activity_vertical_margin"
android:layout_width="@dimen/activity_horizontal_margin"
android:text="10.4"
android:gravity="center" />
<TextView
android:id="@+id/tv7"
android:layout_height="@dimen/activity_vertical_margin"
android:layout_width="@dimen/activity_horizontal_margin"
android:text="10.4"
android:gravity="center" />
<TextView
android:id="@+id/tv8"
android:layout_height="@dimen/activity_vertical_margin"
android:layout_width="@dimen/activity_horizontal_margin"
android:text="10.4"
android:gravity="center" />
</TableRow>
</TableLayout>
TextView 具有参数“DrawableTop/Left/Right”。
为此,您可以View
通过扩展View
类来创建自定义。这是创建自定义按钮的示例View
。它不是您正在寻找的东西,因为它显示了一个自定义Button
,但我相信它会让您入门。