]> rtime.felk.cvut.cz Git - hornmich/skoda-qr-demo.git/commitdiff
Fix bug with loading pdf preview
authorMichal Horn <hornmich@fel.cvut.cz>
Fri, 13 Feb 2015 16:01:54 +0000 (17:01 +0100)
committerMichal Horn <hornmich@fel.cvut.cz>
Fri, 13 Feb 2015 16:01:54 +0000 (17:01 +0100)
The library needs to explicitly call the countPages() function to obtain and
remember the number of pages, which is used in subsequently called updatePage()
and drawPage() functions.

QRScanner/glass/src/main/java/cz/cvut/fel/dce/qrscanner/PreviewActivity.java
QRScanner/mobile/src/main/java/cz/cvut/fel/dce/qrscanner/PreviewActivity.java

index 962a8a06c54b60b2fcfd7b1158b6c0b9d82eef1c..dfd00c7afc1dcfedfdbba0d23ddca4ed2ed90c9e 100644 (file)
@@ -3,6 +3,7 @@ package cz.cvut.fel.dce.qrscanner;
 import android.app.Activity;
 import android.content.Intent;
 import android.graphics.Bitmap;
+import android.graphics.Color;
 import android.net.Uri;
 import android.os.Bundle;
 import android.util.Log;
@@ -40,6 +41,10 @@ public class PreviewActivity extends Activity implements ViewTreeObserver.OnGlob
                super.onCreate(savedInstanceState);
                setContentView(R.layout.activity_preview);
                mPreviewImg = (ImageView) findViewById(R.id.imgComponent);
+               mPreviewImg.setMaxWidth(640);
+               mPreviewImg.setMaxHeight(360);
+               mPreviewImg.setScaleType(ImageView.ScaleType.CENTER_INSIDE);
+
                if (mPreviewImg != null) {
                        mPreviewImgObserver = mPreviewImg.getViewTreeObserver();
                        Log.i(TAG, "Registering mPreviewImgObserver OnGlobalLayoutListener.");
@@ -92,13 +97,16 @@ public class PreviewActivity extends Activity implements ViewTreeObserver.OnGlob
                        Log.i(TAG, "Path to component files: " + picturePath);
 
                        MuPDFCore core = new MuPDFCore(getApplicationContext(), picturePath);
+                       Log.d(TAG, "numpages: "+ core.countPages());
                        MuPDFCore.Cookie cookie = core.new Cookie();
-                       int previewW = mPreviewImg.getWidth();
-                       int previewH = mPreviewImg.getHeight();
+                       int pageW = (int)core.getPageSize(0).x;
+                       int pageH = (int)core.getPageSize(0).y;
+                       Log.d(TAG, "page size: " + pageW + ", " + pageH);
                        Bitmap.Config conf = Bitmap.Config.ARGB_8888;
-                       Bitmap previewBitmap = Bitmap.createBitmap(previewW, previewH, conf);
-                       core.updatePage(previewBitmap, 0, previewW, previewH, 0, 0, previewW, previewH, cookie);
+                       Bitmap previewBitmap = Bitmap.createBitmap(pageW, pageH, conf);
+                       core.drawPage(previewBitmap, 0, pageW, pageH,0 , 0, pageW, pageH, cookie);
                        mPreviewImg.setImageBitmap(previewBitmap);
+                       mPreviewImg.invalidate();
                } catch (Exception e) {
                        Toast toast = Toast.makeText(getApplicationContext(), "Component preview could not be loaded.", Toast.LENGTH_LONG);
                        toast.show();
index ff5cfe71d4256da2ea6190404d0c4109fd89095d..2ea62c447757aaed8e82d9ea7153553a71296abb 100644 (file)
@@ -38,6 +38,8 @@ public class PreviewActivity extends ActionBarActivity implements ViewTreeObserv
                super.onCreate(savedInstanceState);
                setContentView(R.layout.activity_preview);
                mPreviewImg = (ImageView) findViewById(R.id.imgComponent);
+               mPreviewImg.setScaleType(ImageView.ScaleType.CENTER_INSIDE);
+
                if (mPreviewImg != null) {
                        mPreviewImgObserver = mPreviewImg.getViewTreeObserver();
                        Log.i(TAG, "Registering mPreviewImgObserver OnGlobalLayoutListener.");
@@ -89,13 +91,18 @@ public class PreviewActivity extends ActionBarActivity implements ViewTreeObserv
                        Log.i(TAG, "Path to component files: " + picturePath);
 
                        MuPDFCore core = new MuPDFCore(getApplicationContext(), picturePath);
+                       Log.d(TAG, "numpages: "+ core.countPages());
                        MuPDFCore.Cookie cookie = core.new Cookie();
-                       int previewW = mPreviewImg.getWidth();
-                       int previewH = mPreviewImg.getHeight();
+                       int pageW = (int)core.getPageSize(0).x;
+                       int pageH = (int)core.getPageSize(0).y;
+                       Log.d(TAG, "page size: " + pageW + ", " + pageH);
                        Bitmap.Config conf = Bitmap.Config.ARGB_8888;
-                       Bitmap previewBitmap = Bitmap.createBitmap(previewW, previewH, conf);
-                       core.updatePage(previewBitmap, 0, previewW, previewH, 0, 0, previewW, previewH, cookie);
+                       Bitmap previewBitmap = Bitmap.createBitmap(pageW, pageH, conf);
+                       core.drawPage(previewBitmap, 0, pageW, pageH,0 , 0, pageW, pageH, cookie);
+                       mPreviewImg.setMaxWidth(mPreviewImg.getWidth());
+                       mPreviewImg.setMaxHeight(mPreviewImg.getHeight());
                        mPreviewImg.setImageBitmap(previewBitmap);
+                       mPreviewImg.invalidate();
                } catch (Exception e) {
                        Toast toast = Toast.makeText(getApplicationContext(), "Component preview could not be loaded.", Toast.LENGTH_LONG);
                        toast.show();