Я получаю ошибку java.lang.IllegalArgumentException: width and height must be > 0
, и я думаю, что эта ошибка может быть вызвана веб-просмотром. Я пытаюсь показать рендер PDF-файл в веб-режиме, и есть некоторые файлы, которые работают нормально, но другие запускают эту ошибку.WebView: java.lang.IllegalArgumentException: ширина и высота должны быть> 0
activity_convert.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<WebView
android:id="@+id/webView1"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</LinearLayout>
OnCreate метод:
//Setup webview
wv = (WebView)findViewById(R.id.webView1);
wv.getSettings().setBuiltInZoomControls(true);//show zoom buttons
wv.getSettings().setSupportZoom(true);//allow zoom
//get the width of the webview
wv.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
ViewSize = wv.getWidth();
//ViewSize = wv.getHeight();
System.out.println("webView: " + wv.getWidth());
System.out.println("webView: " + wv.getHeight());
wv.getViewTreeObserver().removeGlobalOnLayoutListener(this);
}
});
PDF визуализации:
//create pdf document object from bytes
ByteBuffer bb = ByteBuffer.NEW(data);
PDFFile pdf = new PDFFile(bb);
//Get the first page from the pdf doc
PDFPage PDFpage = pdf.getPage(1, true);
//create a scaling value according to the WebView Width
final float scale = ViewSize/PDFpage.getWidth() * 0.95f;
//convert the page into a bitmap with a scaling value
Bitmap page = PDFpage.getImage((int)(PDFpage.getWidth() * scale), (int)(PDFpage.getHeight() * scale), null, true, true)
Я читал несколько постов здесь с той же проблемой, но их решения доном Не работаем для моего кода. Я попытался получить параметры ширины и высоты, но я не могу понять, почему это не работает.
Я устал, что вы сказали, но он по-прежнему не работает. –