标签:
根据记忆中eoe的Intent相关视频,模仿,写一个打开图片的Activity
1、在主Activity的button时间中,通过设置action、category、data打开一个图片。这时代码已经可以运行,将使用系统默认的工具打开图片。
Intent intentImage = new Intent(Intent.ACTION_VIEW); intentImage.addCategory(Intent.CATEGORY_DEFAULT); File file = new File("/storage/emulated/legacy/Download/xhtml.jpg"); intentImage.setDataAndType(Uri.fromFile(file), "image/*"); startActivity(intentImage);
2、自己定义一个Activity,用来展示图片。可以增加一个对应的layout文件,也可以不增加layout文件,直接使用ImageView来呈现图片。需要在Manifest中增加对应的Activity标签。这时再次点击按钮就会出现选择应用程序。
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); imageView = new ImageView(this); setContentView(imageView); Intent imageIntent = getIntent(); imageView.setImageURI(imageIntent.getData()); }
<activity android:name="ShowImageActivity"> <intent-filter > <action android:name="android.intent.action.VIEW"/> <category android:name="android.intent.category.DEFAULT"/> <data android:mimeType="image/*" android:scheme="file"/> </intent-filter> </activity>
3、经过上面的处理,已经可以选择自己的图片浏览器了。但是在选择使用自己的图片浏览器打开图片的时候,是一片空白,什么都没有,而使用系统默认的工具,则可以正常打开图片。打开LogCat发现以下警告信息“ java.io.FileNotFoundException: /storage/emulated/legacy/Download/xhtml.jpg: open failed: EACCES (Permission denied)”,网上搜索一下即可发现,是因为没有访问该目录的权限,可以参考这个博客android 读取sd卡中的图片。在Manifest文件中增加权限,这次程序可以正常运行了。
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
在写这个程序的过程中,发现以下需要注意的地方:
标签:
原文地址:http://www.cnblogs.com/huanyou/p/5079040.html