1:在xml文件里面写入父布局
<RelativeLayout
android:id="@+id/tbsView"
android:layout_width="match_parent"
android:layout_height="match_parent"></RelativeLayout>
2:定义TbsReaderView 使用java加入到父布局和文件缓存路径
mTbsReaderView = new TbsReaderView(ReportPdfViewActivity.this, new TbsReaderView.ReaderCallback()
{
@Override
public void onCallBackAction(Integer integer, Object o, Object o1)
{
}
});
private String tbsReaderTemp = Environment.getExternalStorageDirectory() + "/TbsReaderTemp";
mRelativeLayout.addView(mTbsReaderView,new RelativeLayout.LayoutParams(-1,-1));
3:获取文件类型
private String getFileType(String paramString) {
String str = "";
if (TextUtils.isEmpty(paramString)) {
return str;
}
int i = paramString.lastIndexOf('.');
if (i <= -1) {
return str;
}
str = paramString.substring(i + 1);
return str;
}
4:根据文件路径、缓存路径、文件类型创建Bundle并使用TbsReaderView 打开
//增加下面一句解决没有TbsReaderTemp文件夹存在导致加载文件失败
String bsReaderTemp = tbsReaderTemp;
File bsReaderTempFile =new File(bsReaderTemp);
if (!bsReaderTempFile.exists()) {
Log.d("print","准备创建/TbsReaderTemp!!");
boolean mkdir = bsReaderTempFile.mkdir();
if(!mkdir){
Log.d("print","创建/TbsReaderTemp失败!!!!!");
}
}
Bundle bundle = new Bundle();
/* 1.TbsReader: Set reader view exception:Cannot add a null child view to a ViewGroup
TbsReaderView: OpenFile failed! [可能是文件的路径错误]*/
/* 2.插件加载失败
so文件不支持;*/
/*
ndk {
//设置支持的SO库架构 'arm64-v8a',
abiFilters 'armeabi', "armeabi-v7a", 'x86'
} */
/*
3.自适应大小
*/
Log.d("print","filePath"+filePath);//可能是路径错误
Log.d("print","tempPath"+tbsReaderTemp);
bundle.putString("filePath", filePath);
bundle.putString("tempPath", tbsReaderTemp);
boolean result = mTbsReaderView.preOpen(getFileType(fileName), false);
if (result) {
mTbsReaderView.openFile(bundle);
}else{
}
网友评论