1

我想开发一个既可以用作 ImageView 又可以用作 TextView 的视图。通常可以通过扩展这两个类来实现,但 Java 不支持多重继承。

那么有可能做到这一点吗?如何 ?

4

3 回答 3

2

我知道我发布这个很晚,你可能也解决了这个问题!仍然想分享一个工作。

我有类似的要求,并意识到 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>
于 2016-01-07T20:35:50.897 回答
1

TextView 具有参数“DrawableTop/Left/Right”。

于 2012-07-16T07:57:50.167 回答
0

为此,您可以View通过扩展View类来创建自定义。是创建自定义按钮的示例View。它不是您正在寻找的东西,因为它显示了一个自定义Button,但我相信它会让您入门。

于 2012-07-16T07:02:11.317 回答