diff options
author | Yuichi Araki <yaraki@google.com> | 2016-12-20 01:57:40 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2016-12-20 01:57:40 +0000 |
commit | 3506df96a6115e351d2cbe60b6695e6d1fb87a3b (patch) | |
tree | 382a8359a594ca42fdc79b31788197701bac7ff3 /ui | |
parent | dc77d5bb8da2ba256e2a81f65f362f4cdf07dd1f (diff) | |
parent | 7b6e65db152f19c782fc02d05e5f12e098675a78 (diff) | |
download | android-3506df96a6115e351d2cbe60b6695e6d1fb87a3b.tar.gz |
Merge "Work around an issue with aapt" into nyc-mr1-dev
Diffstat (limited to 'ui')
-rw-r--r-- | ui/graphics/PdfRendererBasic/Application/src/main/java/com/example/android/pdfrendererbasic/PdfRendererBasicFragment.java | 24 | ||||
-rw-r--r-- | ui/graphics/PdfRendererBasic/template-params.xml | 15 |
2 files changed, 25 insertions, 14 deletions
diff --git a/ui/graphics/PdfRendererBasic/Application/src/main/java/com/example/android/pdfrendererbasic/PdfRendererBasicFragment.java b/ui/graphics/PdfRendererBasic/Application/src/main/java/com/example/android/pdfrendererbasic/PdfRendererBasicFragment.java index e413c659..20b0a7f4 100644 --- a/ui/graphics/PdfRendererBasic/Application/src/main/java/com/example/android/pdfrendererbasic/PdfRendererBasicFragment.java +++ b/ui/graphics/PdfRendererBasic/Application/src/main/java/com/example/android/pdfrendererbasic/PdfRendererBasicFragment.java @@ -30,7 +30,10 @@ import android.widget.Button; import android.widget.ImageView; import android.widget.Toast; +import java.io.File; +import java.io.FileOutputStream; import java.io.IOException; +import java.io.InputStream; /** * This fragment has a big {@ImageView} that shows PDF pages, and 2 {@link android.widget.Button}s to move between @@ -44,6 +47,11 @@ public class PdfRendererBasicFragment extends Fragment implements View.OnClickLi private static final String STATE_CURRENT_PAGE_INDEX = "current_page_index"; /** + * The filename of the PDF. + */ + private static final String FILENAME = "sample.pdf"; + + /** * File descriptor of the PDF. */ private ParcelFileDescriptor mFileDescriptor; @@ -136,7 +144,21 @@ public class PdfRendererBasicFragment extends Fragment implements View.OnClickLi */ private void openRenderer(Context context) throws IOException { // In this sample, we read a PDF from the assets directory. - mFileDescriptor = context.getAssets().openFd("sample.pdf").getParcelFileDescriptor(); + File file = new File(context.getCacheDir(), FILENAME); + if (!file.exists()) { + // Since PdfRenderer cannot handle the compressed asset file directly, we copy it into + // the cache directory. + InputStream asset = context.getAssets().open(FILENAME); + FileOutputStream output = new FileOutputStream(file); + final byte[] buffer = new byte[1024]; + int size; + while ((size = asset.read(buffer)) != -1) { + output.write(buffer, 0, size); + } + asset.close(); + output.close(); + } + mFileDescriptor = ParcelFileDescriptor.open(file, ParcelFileDescriptor.MODE_READ_ONLY); // This is the PdfRenderer we use to render the PDF. mPdfRenderer = new PdfRenderer(mFileDescriptor); } diff --git a/ui/graphics/PdfRendererBasic/template-params.xml b/ui/graphics/PdfRendererBasic/template-params.xml index c7182ebb..81ea8268 100644 --- a/ui/graphics/PdfRendererBasic/template-params.xml +++ b/ui/graphics/PdfRendererBasic/template-params.xml @@ -33,10 +33,6 @@ </intro> </strings> - <aapt> - <noCompress>pdf</noCompress> - </aapt> - <template src="base"/> <metadata> @@ -71,15 +67,8 @@ rendering with [openPage()][3], then call [render()][4] to turn the opened [PdfRenderer.Page][5] into a bitmap. This sample loads the PDF from assets. Contents of assets are compressed by -default, but we disable it since PdfRenderer class cannot handle it. - -```groovy -android { - aaptOptions { - noCompress "pdf" - } -} -``` +default, and the PdfRenderer class cannot open it. In this sample, we work +around this by copying the file into the cache directory. [1]: https://developer.android.com/reference/android/graphics/pdf/PdfRenderer.html [2]: https://developer.android.com/reference/android/os/ParcelFileDescriptor.html |