Android ImageView带有文本叠加的缩放功能

12

我想在Android上编程实现将textview叠加在imageview上。我已经成功地完成了这个任务。同时,我也想要图片能够缩放,这方面我也已经做到了。但是,我现在遇到的问题是如何在图像上以一种方式放置文本,使得当我缩放图像时,文本不会随着缩放而缩小,并且它应该始终停留在图像上的相同位置,而不是屏幕上。


你尝试过将TextView作为View添加到ImageView中并覆盖手势监听器吗? - Tobias S
1
看这个:https://dev59.com/WWYr5IYBdhLWcg3wB16h?rq=1 - zed
@TobiasK. 你说的“将TextView作为View添加到ImageView中”是什么意思?ImageView可以有子元素吗? - techtinkerer
我想把一个TextView放在一个ImageView上面。之后,我想通过捏合手势来调整文本的大小,但现在我不记得我是如何解决这个问题的,是否使用了不同的元素。 - Tobias S
1个回答

6

好的,我创建了一个符合您需求的XML布局。您只需要对图像进行缩放即可。

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout

    xmlns:android="http://schemas.android.com/apk/res/android"

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

    <ImageView
        android:id="@+id/image"
        android:layout_width="287dp"
        android:layout_height="287dp"

        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"/>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"

        android:text="Hello Constant Text Overlay"

        android:layout_gravity="center_horizontal|center_vertical"/>
        <!-- Don't want it centered? Then change the layout gravity to fit your needs -->

</FrameLayout>

通过这样的方法,您可以轻松地修改ImageView的宽度和高度,而TextView将保持在中心位置不会变大或缩小。
我注意到您采用了编程解决方案,您可以轻松查看如何通过XML完成,并将其转换为代码。
重要的是,您需要在ImageView周围有一个容器来包裹内容。在其中,您需要指定宽度/高度的ImageView以及水平和垂直居中的TextView。
现在,您可以随心所欲地处理图像,文本将保持不变; 只是它将保持在中心位置。

如果他想要居中对齐的文本,这是一个不错的选择,但如果他想要文本在其他位置,那么zed的评论是一个很好的方法。 - Marko Lazić
我添加了一条注释来解释如何将它从居中更改。我的解决方案可以正确地适用于众多位置。这也是最简单的解决方案之一。 - Christopher Rucinski
此外,如果用户不想将其放置在由“layout_gravity”确定的位置之一,则可以添加其他属性,例如边距等。 - Christopher Rucinski

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