如何在android中打开.png或.doc文件

时间:2009-09-17 15:35:06

标签: android

如何在新的Activity中打开Android中的.png或.doc文件。

2 个答案:

答案 0 :(得分:1)

使用PNG,您可以使用ImageView

除非您想自己编写解析器,否则没有任何方法可以读取DOC文件。您可以尝试Apache POI,但您仍需要自己将其绘制到屏幕上。

答案 1 :(得分:0)

我知道这个问题被问了很长时间(科特林甚至没有出生:)),但也许有人会发现我的回答有用。

如果要打开图像(.png,.jpg,.jpeg)或文件(.doc或.docx),则可以执行以下操作:

JAVA

                Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
                intent.setType("*/*");
                String[] mimeTypes = {"image/*", "application/vnd.openxmlformats-officedocument.wordprocessingml.document"};
                intent.putExtra(Intent.EXTRA_MIME_TYPES, mimeTypes);
                startActivityForResult(intent, YOUR_REQUEST_CODE);

然后使用onActivityResult方法:

        if (requestCode == YOUR_REQUEST_CODE && resultCode == RESULT_OK) {
            Intent intent = new Intent(Intent.ACTION_VIEW);
            intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);

            if (data != null && data.getData() != null) {
                if (data.getData().toString().contains(".png") ||
                        data.getData().toString().contains(".jpg") ||
                        data.getData().toString().contains(".jpeg")) {

                    intent.setDataAndType(data.getData(), "image/jpeg");

                } else if (data.getData().toString().contains(".doc")) {
                    intent.setDataAndType(data.getData(), "application/msword");
                } else if (data.getData().toString().contains(".docx")) {
                    intent.setDataAndType(data.getData(), "application/vnd.openxmlformats-officedocument.wordprocessingml.document");
                }
            }
            startActivity(intent);
        }

科特琳

startActivityForResult(Intent(Intent.ACTION_OPEN_DOCUMENT).apply {
                type = "*/*"
                val mimeTypes = arrayOf(
                    "image/*",
                    "application/vnd.openxmlformats-officedocument.wordprocessingml.document"
                )
                putExtra(Intent.EXTRA_MIME_TYPES, mimeTypes)
            }
                , YOUR_REQUEST_CODE)

然后在onActivityResult函数中:

if (requestCode == YOUR_REQUEST_CODE && resultCode == Activity.RESULT_OK) {
            startActivity(Intent(Intent.ACTION_VIEW).apply {

                flags = Intent.FLAG_GRANT_READ_URI_PERMISSION
                if (data?.data.toString().contains(".png") ||
                    data?.data.toString().contains(".jpg") ||
                    data?.data.toString().contains(".jpeg")
                ) {
                    setDataAndType(data?.data, "image/jpeg")
                } else if (data?.data.toString().contains(".doc")) {
                    setDataAndType(data?.data, "application/msword")
                } else if (data?.data.toString().contains(".docx")) {
                    setDataAndType(
                        data?.data,
                        "application/vnd.openxmlformats-officedocument.wordprocessingml.document"
                    )
                }
            })
        }