Java 将文本视图放在ImageView前面

Java 将文本视图放在ImageView前面,java,android,eclipse,Java,Android,Eclipse,我正在寻找一种方法,如何将文本视图固定在一个透明的正方形上,比如我在Paint.net中所做的图片。因此文本视图应该位于透明正方形(ImageView)的前面。当屏幕更大时,它也应该伸展 我怎样才能解决这个问题? 谢谢 您可以使用RelativeLayout或FrameLayout <FrameLayout> <ImageView> <TextView> </FrameLayout> 您的文本视图将显示在ImageView上 尽

我正在寻找一种方法,如何将文本视图固定在一个透明的正方形上,比如我在Paint.net中所做的图片。因此文本视图应该位于透明正方形(ImageView)的前面。当屏幕更大时,它也应该伸展

我怎样才能解决这个问题?
谢谢

您可以使用RelativeLayout或FrameLayout

<FrameLayout>
   <ImageView>
   <TextView>
</FrameLayout>

您的文本视图将显示在ImageView上

尽管注意到,RelativeLayout有双重征税权衡。每个测量和布局发生两次。

使用框架布局

<FrameLayout
    android:layout_height="wrap_content"
    android:layout_width="wrap_content">

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/semi_transparent_background"/>

    <TextView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:text="This is my text."/>

</FrameLayout>


或者,您可以使用相对布局执行类似的操作。

在XML中,简单地从上到下排序RelativeLayout中的项目将使每个项目相对于其上方的其他项目依次向前移动。

好的,我如何使其具有弹性?因此,如果屏幕更大,TextView仍在Imageview中(本例中为正方形)?在这种情况下,由于TextView和Imageview填充框架布局,因此它将相应地拉伸。如果这不是你的意思,你能再解释一点吗?我不知道怎么解释,所以我在paint.net中做了第二个例子,TextView的大小将始终与ImageView相同。但是,您需要确保FrameLayout不会填满屏幕,以实现所需的效果。我已经在上面的答案中更新了宽度/高度。