【问题标题】:Android ImageView Zoom with text overlay带有文本叠加的 Android ImageView 缩放
【发布时间】:2015-10-18 01:57:43
【问题描述】:

我想将textview 覆盖在我以编程方式完成的android 上的imageview 上。我还希望该图像应该能够放大和缩小,这也是我能够做到的。但是我遇到了在图像上放置文本的问题,即当我缩放图像时,文本不应该缩放,它应该保持在图像上的相同位置而不是屏幕上。

【问题讨论】:

  • 您是否尝试将 TextView 作为 View 添加到 ImageView 并覆盖手势侦听器?
  • @TobiasK。添加“将TextView作为视图添加到ImageView”是什么意思? ImageView 可以有子元素吗?
  • 我想在图像视图上放置一个文本视图。之后我想调整捏合时的文本大小以缩放手势,但现在我不记得我是如何解决这个问题的,是否使用了不同的元素。

标签: java android android-imageview pinchzoom


【解决方案1】:

好的,我创建了一个符合您需要的 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 的评论是很好的方法。
  • 我添加了一条评论来解释如果从居中如何更改。我的解决方案适用于许多职位。这也是最简单的解决方案之一
  • 另外,如果用户不希望它位于layout_gravity 确定的位置之一,那么他们可以添加其他属性,例如边距等
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-06
  • 1970-01-01
相关资源
最近更新 更多