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

如何在android中打开.png或.doc文件,android,Android,如何在新活动中在android中打开.png或.doc文件。使用png,您可以使用 除非您想自己编写解析器,否则实际上没有任何方法可以读取DOC文件。你可以试试,但你还是得自己把它画到屏幕上。我知道这个问题问了很久了(Kotlin还没出生:),但也许有人会发现我的答案很有用 如果要打开图像(.png、.jpg、.jpeg)或文件(.doc或.docx),则可以执行以下操作: JAVA Intent intent = new Intent(Intent.ACTION

如何在新活动中在android中打开.png或.doc文件。

使用png,您可以使用


除非您想自己编写解析器,否则实际上没有任何方法可以读取DOC文件。你可以试试,但你还是得自己把它画到屏幕上。

我知道这个问题问了很久了(Kotlin还没出生:),但也许有人会发现我的答案很有用

如果要打开图像(.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);
        }
KOTLIN

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"
                    )
                }
            })
        }

您的意思是如何打开二进制流还是如何显示它们?请更具体一些。是的,我想阅读文件的内容并在屏幕上显示,然后你像在任何Java应用程序中那样做。使用FileInputStream。图像视图可以显示.png,如何加载.png文件(不是资源)?