我有一个使用android Intent的图像视图,代码如下。
//在全屏查看器中打开图像
showImageInViewer(项目){
let uri = '';
let root = android.os.Environment.getExternalStoragePublicDirectory(android.os.Environment.DIRECTORY_PICTURES).getAbsolutePath();
let localPath = fs.path.join(root, "One/media/" + item.value.conversationId);
localPath = fs.path.join(localPath, item.value.localpath+".jpg");
console.log("LocalPath si : " + localPath);
if(fs.File.exists(localPath)){
// console.log("File exist on local");
uri = localPath;
var appModule_1 = require("application");
var intent = new android.content.Intent(android.content.Intent.ACTION_VIEW);
intent.setDataAndType(android.net.Uri.parse(localPath),"image/*");
appModule_1.android.foregroundActivity.startActivity(intent);
} else {
// console.log("File doesn't exist on local");
Toast.makeText("Downloading Image").show();
let image = new ImageModule.Image();
imageSource.fromUrl(item.value.url).then((res: imageSource.ImageSource)=>{
// console.log("Image Loading Successful");
let inputBitmap = android.graphics.Bitmap.createBitmap(res.android);
let nativeFile = void 0;
let tempPictureUri = void 0;
let baos = void 0;
baos = new java.io.ByteArrayOutputStream();
// console.log("Saving Image");
inputBitmap.compress(android.graphics.Bitmap.CompressFormat.JPEG, 100, baos);
let data = baos.toByteArray();
let file = fs.File.fromPath(localPath);
file.writeSync(data, (e) => {
// console.dump(e)
});
inputBitmap.recycle();
// android.media.
var appModule_1 = require("application");
var intent = new android.content.Intent(android.content.Intent.ACTION_VIEW);
intent.setDataAndType(android.net.Uri.parse(localPath),"image/*");
// intent.setAction(android.content.Intent.ACTION_GET_CONTENT);
// intent.setAction(android.content.Intent.ACTION_VIEW);
appModule_1.android.foregroundActivity.startActivity(intent);
}).catch((error)=>{
// console.dump(error);
});
}
}
这将图像文件保存在文件存储中,其路径类似于: /storage/emulated/0/Pictures/One/media/-KYjJ_BTfQKI5gmNyl6T/-KZujwQZC6BlScebtpnn-m372.jpg
图像在Xiomi Redmi Note 3上正确显示,但在nexus和三星手机中没有打开相同的图像。
请帮忙
答案 0 :(得分:1)
我明白了。它是图像的路径。它一定要是 : '文件://' +局部路径
我仍然不知道它是如何在小米上工作而不是在其他手机上。