如何通过编程将TextView更改为ImageView并再次更改回来

4

我有一个XML布局,定义了一个TextView框,大小为50像素 x 320像素,其ID为TextView2
有时我想使用同样的TextView区域来显示图像。
我希望能够通过编程来切换该区域是TextView还是ImageView

   <LinearLayout
    android:layout_width="320dp"
    android:layout_height="50dp" >

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="0.35"
        android:text="      "
        android:textAppearance="?android:attr/textAppearanceLarge" />
    </LinearLayout>   
2个回答

4
只需在TextView下方/旁边添加一个ImageView,并在你不想显示的那个视图上设置android:visibility="gone"。同时,设置android:id="@+id/some_identifier"以便你可以在代码中找到视图,并在需要切换时将TextView设置为View.GONE,将ImageView设置为View.VISIBLE。
<LinearLayout
    android:layout_width="320dp"
    android:layout_height="50dp" >

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="0.35"
        android:text="      "
        android:textAppearance="?android:attr/textAppearanceLarge" />

    <ImageView
        android:id="@+id/image_view_1"
        android:visibility="gone"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

</LinearLayout>

太好了!谢谢。我可以使用相同的方法来设置一个区域来执行多个任务。我知道我可以使用画布,但很高兴看到还有另一种方法。 - user1445716

1

这里有两个选项:

  1. 您可以根据特定条件设置TextView的背景或文本。

  2. 您可以单独使用ImageView,当您想要设置图像时,将ImageView的可见性设置为True并将TextView的可见性设置为GONE;而当您想要文本时,则将TextView的可见性设置为True并将ImageView的可见性设置为GONE。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接