Android:如何动态添加选定的文档到ImageView作为预览/缩略图在Gridview中
我有一个android应用程序,我需要实现一个包含imageview和TextView的Gridview,也有一个按钮来添加新的视图gridview.When我点击这个按钮时,一个文件选择器会来,并可以从我的设备中选择任何文档,如PDF,文档,图像等。然后我想要显示这个文档作为一个图像在gridview中的名称。如何我是这么做的吗?如果我们收到带附件的邮件(图片,pdf,docs,..),那么我们可以在打开该邮件时将其视为图片。这就是我们可以看到的预览图像该文件之前,我们点击每个文件如下。我需要在我的GridView完全相同的功能。 下面是我用来显示文件选择器的代码。Android:如何动态添加选定的文档到ImageView作为预览/缩略图在Gridview中
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("*/*");
intent.addCategory(Intent.CATEGORY_OPENABLE);
try {
startActivityForResult(Intent.createChooser(intent, "Select a File to Upload"),FILE_SELECT_CODE);
} catch (Exception ex) {
System.out.println("browseClick :"+ex);
}
,我已经实现了
onActivityResult(int requestCode, int resultCode, Intent data){}
选择file.After这么多的研究,我得到了创建如下视频文件的缩略图的方法后做的工作。
ThumbnailUtils.createVideoThumbnail(filePath, kind);
但是没有找到任何东西来获取其他文件的缩略图。
我不知道如何在gridview像images.Please帮助我显示文档。
要创建这样的缩略图,当然需要首先创建pdf的缩略图。你在网上看到的提供开箱即用的解决方案,将PDF内容显示为缩略图,但对于android来说并不那么顺利。我可以建议你创建转换图像格式的任何页面,并将转换后的图像显示为PDF的缩略图。在android中没有直接的方法来做到这一点,所以你必须依赖像this这样的第三方库,它是可用于java的pdfbox的移植版本,或者你可以尝试使用this库。有this另一个库只是可用于Java不知道它是否也适用于Android(我还没有尝试过)。 如果不是最大的必要条件,我建议你只显示pdf指示器,因为只是为了显示PDF,增加apk大小并不是一个明智的决定,包括这些库。还有一些复杂和高图形包含PDF,可能会通过增加Java堆大小而导致应用程序崩溃。
有“.pdf”文件的PdfRenderer库。
Android文档在这里,PDF Renderer Library。不幸的是,这个库添加API 21
有很好的例子为这个图书馆Create and Display PDF within Android Application
这段代码在这个网站。您可以使用此代码创建缩略图。
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
private void generateImageFromPdf(String filePath) {
// filePath must be like : Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS).getAbsolutePath()+"/42080.pdf"
File file = new File(filePath);
// FileDescriptor for file, it allows you to close file when you are
// done with it
ParcelFileDescriptor mFileDescriptor = null;
try {
mFileDescriptor = ParcelFileDescriptor.open(file,
ParcelFileDescriptor.MODE_READ_ONLY);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
// PdfRenderer enables rendering a PDF document
PdfRenderer mPdfRenderer = null;
try {
mPdfRenderer = new PdfRenderer(mFileDescriptor);
} catch (IOException e) {
e.printStackTrace();
}
// Open page with specified index
PdfRenderer.Page mCurrentPage = mPdfRenderer.openPage(0);
Bitmap bitmap = Bitmap.createBitmap(mCurrentPage.getWidth(),
mCurrentPage.getHeight(), Bitmap.Config.ARGB_8888);
// Pdf page is rendered on Bitmap
mCurrentPage.render(bitmap, null, null,
PdfRenderer.Page.RENDER_MODE_FOR_DISPLAY);
// Set rendered bitmap to ImageView (pdfView in my case)
ImageView pdfView = (ImageView) findViewById(R.id.bitmap);
pdfView.setImageBitmap(bitmap);
mCurrentPage.close();
mPdfRenderer.close();
try {
mFileDescriptor.close();
} catch (IOException e) {
e.printStackTrace();
}
}
的文档通常的邮件客户端显示PDF,Word文件等,并缩略图图像的图标。 当你选择文件检查mimeType如果它是图像在图像上显示缩略图 如果它是PDF然后显示PDF图标(把图标放在可绘制文件夹中),并显示与其他文件相同的情况。 –
但在邮件中,我认为我们可以在打开pdf之前看到PDF的内容就像一张小图片。 – KJEjava48
不,我们可以把pdf的名称在textView –