android - 如何在 `PhotoView` 上显示文字?

标签 android android-linearlayout android-imageview android-photoview

在我的应用程序中,我使用名为 PhotoView 的库全屏显示图像(这实际上是一个新 Activity )。示例图片如下,所以我需要像这样显示文本。

enter image description here

我已经发布了 XML 代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_view_full_screen_image"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.example.theace.fullscreen.ViewFullScreenImage"
    android:orientation="vertical">

        <LinearLayout
            android:id="@+id/li1"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical">

                <com.github.chrisbanes.photoview.PhotoView
                    android:id="@+id/photo_view"
                    android:layout_width="match_parent"
                    android:layout_centerInParent="true"
                    android:layout_height="match_parent"
                    android:layout_marginBottom="40dp" />

                <TextView
                    android:layout_width="match_parent"
                    android:layout_height="30dp"
                    android:layout_marginBottom="10dp"
                    android:textColor="@android:color/white"
                    android:id="@+id/tv1"/>


        </LinearLayout>


</LinearLayout>

下面是我的相关Java代码

package com.example.theace.fullscreen;

import android.graphics.Color;
import android.net.Uri;
import android.support.v4.app.NavUtils;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.MenuItem;
import android.view.Window;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.TextView;
import com.github.chrisbanes.photoview.PhotoView;
import com.squareup.picasso.Picasso;

public class ViewFullScreenImage extends AppCompatActivity {

    RelativeLayout li1;
    TextView textView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        supportRequestWindowFeature(Window.FEATURE_ACTION_BAR_OVERLAY);
        this.requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.activity_view_full_screen_image);
        li1 = (RelativeLayout) findViewById(R.id.activity_view_full_screen_image);
        li1.setBackgroundColor(Color.BLACK);
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        textView = (TextView)findViewById(R.id.tv1);

        loadImage();
    }

    public void loadImage(){

        Uri imageUrl = Uri.parse("https://s-media-cache-ak0.pinimg.com/736x/39/c7/64/39c764abd350c509f76c6362780a3a78--outdoor-portraits-outdoor-portrait-photography.jpg");

        PhotoView photoView = (PhotoView) findViewById(R.id.photo_view);
        Picasso.with(this).load(imageUrl).into(photoView);
        textView.setText("Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec tristique nunc turpis, at congue est molestie a. Etiam nec cursus arcu. Curabitur vestibulum ligula vitae velit rutrum sollicitudin. Phasellus imperdiet ultrices semper. Morbi laoreet magna sit amet mi vulputate pharetra. Proin faucibus maximus massa, sit amet vestibulum elit posuere eget.");
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case android.R.id.home:
                NavUtils.navigateUpFromSameTask(this);
                return true;
            default:
                return super.onOptionsItemSelected(item);
        }
    }
}

我该如何解决这个问题?

最佳答案

只需使用下面的代码

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_view_full_screen_image"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.example.theace.fullscreen.ViewFullScreenImage"
    android:orientation="vertical">


        <com.github.chrisbanes.photoview.PhotoView
            android:id="@+id/photo_view"
            android:layout_width="match_parent"
            android:layout_centerInParent="true"
            android:layout_height="match_parent"
            android:scaleType="center"/>

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginBottom="10dp"
            android:layout_alignParentBottom="true"
            android:textColor="@android:color/white"
            android:layout_gravity="bottom|center_horizontal"
            android:id="@+id/tv1"/>


</FrameLayout>

关于android - 如何在 `PhotoView` 上显示文字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45726887/

相关文章:

android - 当 WIFI 网络没有互联网连接时,.net 或 Xamarin 互联网可用性检查

android - 进度条 Activity 强制关闭

android - 如何在 Android LinearLayout 周围创建边框?

Android,layout_above 不工作

android - ShapeableImageView 的笔画被边框切割

android - Galaxy Mega 与其他 Phablets 和 Android Manifest

android - RecyclerView Adapter 和 ViewHolder 动态更新

Android:在方向改变时交换宽度和高度

java - Android ImageView设置图片来源

android - 像指南针一样旋转 ImageView(在别处设置 "north pole")