我想通过手机的默认imageview应用程序(图库等)在我的drawable文件夹中打开图像。
我的图片位置:drawable / image.png
代码:
Intent intent = new Intent();
intent.setAction(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.parse(""), "image/*");
startActivity(intent);
我需要在Uri.parse函数中编写什么来查看图像文件?
答案 0 :(得分:4)
为此,您必须将可绘制文件夹中的图像复制到SD卡,然后将SD卡中文件的路径设置为意图。
以下是代码:
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.imagename);
ByteArrayOutputStream bytes = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 40, bytes);
File f = new File(Environment.getExternalStorageDirectory()
+ File.separator + "test.jpg");
try {
f.createNewFile();
FileOutputStream fo = new FileOutputStream(f);
fo.write(bytes.toByteArray());
fo.close();
} catch (IOException e) {
e.printStackTrace();
}
Uri path = Uri.fromFile(f);
Intent intent = new Intent();
intent.setAction(Intent.ACTION_VIEW);
intent.setDataAndType(path, "image/*");
startActivity(intent);
请注意 imagename 是可绘制文件夹中图片的名称
并且不要忘记添加权限以访问清单文件中的SD卡
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
答案 1 :(得分:1)
我认为你不能那样做。此drawable对您的应用程序是私有的,其他应用程序无法使用它。您应该创建自己的ImageViewer
或将这些drawable复制到SD卡,并在启动Uri
时设置Intent
。
答案 2 :(得分:0)
您可以通过以下代码访问您的图片:
R.drawable.image
例如,您可以在“onCreate”方法中使用此代码:
ImageView img = new ImageView(this);
img.setImageDrawable(R.drawable.image);