Подтвердить что ты не робот

Android ImageView Zoom с наложением текста

Я хочу наложить textview на imageview на андроид, который я сделал программно. Я также хочу, чтобы изображение было в состоянии увеличивать и уменьшать масштаб, что также я могу сделать. Но я застрял в проблеме размещения текста на изображении таким образом, что, пока я увеличиваю изображение, текст не должен увеличиваться, и он должен оставаться в том же положении на изображении, что и на экране.

4b9b3361

Ответ 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, который центрируется по горизонтали и вертикали в контейнере.

Теперь вы можете делать то, что хотите сделать с изображением, текст останется нетронутым; просто он останется в центре