我尝试使用[bartecksc AndroidPdfViewer][1]
[1]:https://github.com/barteksc/AndroidPdfViewer在我的android应用程序中查看PDF文件从assets文件夹内的应用程序,但它是不工作的。它显示一个空白屏幕。以下是我所做的:我在build.gradle文件中添加了这个依赖项
implementation 'com.github.barteksc:android-pdf-viewer:3.1.0-beta.1'
(我甚至尝试使用implementation 'com.github.barteksc:android-pdf-viewer:2.8.2'
)
我在activity_main.xml中添加了以下小部件
<com.github.barteksc.pdfviewer.PDFView
android:id="@+id/pdfView"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
我将以下代码放在onCreate方法中
PDFView pdfView=findViewById(R.id.pdfView);
pdfView.fromAsset("sample_file.pdf");
我要显示的文件位于assets文件夹中,名称为sample_file. pdf
以下是我的MainActivity.java
package com.umersoftwares.bartekscpdfview;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import com.github.barteksc.pdfviewer.PDFView;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
PDFView pdfView=findViewById(R.id.pdfView);
pdfView.fromAsset("sample_file.pdf");
}
}
下面是我的activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<com.github.barteksc.pdfviewer.PDFView
android:id="@+id/pdfView"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
</android.support.constraint.ConstraintLayout>
我的build.gradle文件是:
apply plugin: 'com.android.application'
android {
compileSdkVersion 28
defaultConfig {
applicationId "com.umersoftwares.bartekscpdfview"
minSdkVersion 16
targetSdkVersion 28
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
implementation 'com.github.barteksc:android-pdf-viewer:2.8.2'
}
2条答案
按热度按时间v440hwme1#
问题在于,必须调用PDFView对象上的
.load()
方法来显示pdf。而不是仅:
8cdiaqws2#
您发布的代码缺少阅读存储的必要权限。
这里有一个关于github的演示,里面有你发布的库。检查请求读存储权限的代码,并在你的代码中实现它。
您可以参考库提供的演示的这个示例类。
https://github.com/barteksc/AndroidPdfViewer/blob/master/sample/src/main/java/com/github/barteksc/sample/PDFViewActivity.java