2012-07-16 37 views
1

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

然后有可能做到这一点吗?如何 ?

+1

为什么你想要?仅供参考,您可以通过扩展视图来设计自定义视图。 – 2012-07-16 06:59:07

+0

为什么不简单地为您的TextView设置背景并在需要时将文本设置为它? – 2012-07-16 07:00:55

+0

但我需要ImageView和TextView的所有功能以单个视图 – surendra 2012-07-16 07:01:40

回答

0

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

1

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

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>