android 打开图片 intent,android 利用隐式Intent打开图片

实现功能

??点击“查看图片”时能够跳出提示,选择系统图库打开还是自己编写的应用打开,并且对于下载好的图片也有效。

1.我将 qiaoba.jpg 放在 res/drawable 目录下,通过按钮设置打开图片,在按钮的监听设置如下:

findViewById(R.id.btn_openImage).setOnClickListener(newView.OnClickListener() {

@Overridepublic voidonClick(View v) {//要是自定义应用打开图片必须添加ACTION_VIEW的Intent

Intent intent = newIntent(Intent.ACTION_VIEW);//进行图片-->bitmap-->uri转换

Bitmap bitmap =BitmapFactory.decodeResource(getResources(),R.drawable.qiaoba);//系统提供了现成的API让用户可以将自己喜欢的图片保存到系统相册中.

String uriString = MediaStore.Images.Media.insertImage(getContentResolver(),bitmap,null,null);

System.out.println(uriString);

Uri uri=Uri.parse(uriString);//设置数据和类型可以用setData( )或setType( ) ,但是同时设置的话是不生效的,//只能使用setDataAndType( ) ,image代表图片,星号代表图片中所有格式,//可根据自己需要筛选,如只想打开jpg类型图片可用“image/jpg”

intent.setDataAndType(uri,"image/*");

startActivity(intent);

}

});

2.之前发送了打开图片的请求,接下来添加一个显示图片的java文件“ShowImageAty.java”,并添加一个对应的“aty_show_image.xml”文件

public class ShowImageAty extendsAppCompatActivity {

ImageView ivQiaoba;

@Overrideprotected voidonCreate(@Nullable Bundle savedInstanceState) {super.onCreate(savedInstanceState);

setContentView(R.layout.aty_show_image);

ivQiaoba=(ImageView) findViewById(R.id.iv_qiaoba);

Intent getImage=getIntent();//不为空判断

if (getImage != null) {//获取intent传递过来的uri数据

Uri data =getImage.getData();if (data != null) {

ivQiaoba.setImageURI(data);

}

}

}

}

3.在AndroidManifest.xml文件中设置intent-filter标签以及注册网络以及文件读写权限

package="com.jikexueyuan.notepad.simplepicturebrowser">

android:allowBackup="true"android:icon="@mipmap/ic_launcher"android:label="@string/app_name"android:supportsRtl="true"android:theme="@style/AppTheme">

android:name=".ShowImageAty"android:exported="true">

另外提一点,如果再android6.0,targetSDKVersion 23 以上运行就要手动注册读写权限了,如果测试版本在 23 以上,会报这样的错

java.lang.SecurityException: Permission Denial: writing com.android.providers.media.MediaProvider uri content://media/external/images/media from pid=2317, uid=10064 requires android.permission.WRITE_EXTERNAL_STORAGE, or grantUriPermission()

手动注册读写权限见:http://blog.csdn.net/dzsw0117/article/details/51212612

原文:http://www.cnblogs.com/prescheng/p/6113124.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值