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