如何在 `PhotoView` 上显示文字?
How to display text on `PhotoView`?
在我的应用程序中,我使用名为 PhotoView
的库全屏显示图像(实际上是一个新的 activity)。示例图片如下,所以我需要这样显示文本。
我已经发布了 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);
}
}
}
我该如何解决这个问题?
试试这个让你的 activity_view_full_screen.xml 像这样
使用RelativeLayout
,让你的TextView
变成android:layout_alignParentBottom="true"
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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:orientation="vertical">
<com.github.chrisbanes.photoview.PhotoView
android:id="@+id/photo_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:scaleType="fitXY"
android:layout_marginBottom="40dp"
android:src="@drawable/disha" />
<TextView
android:id="@+id/tv1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:gravity="center"
android:padding="5dp"
android:layout_alignParentBottom="true"
android:background="#9a080808"
android:text="@string/abc"
android:textColor="@android:color/white" />
</RelativeLayout>
只需使用下面的代码
<?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>
在我的应用程序中,我使用名为 PhotoView
的库全屏显示图像(实际上是一个新的 activity)。示例图片如下,所以我需要这样显示文本。
我已经发布了 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);
}
}
}
我该如何解决这个问题?
试试这个让你的 activity_view_full_screen.xml 像这样
使用RelativeLayout
,让你的TextView
变成android:layout_alignParentBottom="true"
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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:orientation="vertical">
<com.github.chrisbanes.photoview.PhotoView
android:id="@+id/photo_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:scaleType="fitXY"
android:layout_marginBottom="40dp"
android:src="@drawable/disha" />
<TextView
android:id="@+id/tv1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:gravity="center"
android:padding="5dp"
android:layout_alignParentBottom="true"
android:background="#9a080808"
android:text="@string/abc"
android:textColor="@android:color/white" />
</RelativeLayout>
只需使用下面的代码
<?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>