如何在新的Activity中打开Android中的.png或.doc文件。
答案 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"
)
}
})
}