android浏览器大图无法显示,Android图片浏览器-隐式Intent打开图片

实现功能

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

pic1

pic2

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

@Override

public void onClick(View view) {

Intent intent = new Intent(Intent.ACTION_VIEW); //打开图片得启动ACTION_VIEW意图

Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.cat); //将图片转换为bitmap格式

Uri uri = Uri.parse(MediaStore.Images.Media.insertImage(getContentResolver(), bitmap, null, null)); //将bitmap转换为uri

intent.setDataAndType(uri, "image/*"); //设置intent数据和图片格式

startActivity(intent);

}

要是自定义应用打开图片必须添加ACTION_VIEW的Intent

进行图片-->bitmap-->uri转换

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

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

public class ShowPic extends AppCompatActivity {

private ImageView ivShowPic;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_show_pic);

ivShowPic = (ImageView) findViewById(R.id.iv_show_pic);

Intent getImage = getIntent();

Uri data = getImage.getData(); //获取Intent传过来的uri数据

ivShowPic.setImageURI(data); //ImageView显示出来

}

}

3.最最最最最最重要的是改变Mainfest.xml文件

由于增加了可以打开下载的图片,得加入互联网权限才能下载;

并且增加读写sd卡的权限

其次

为ShowPic增加intent-filter标签,添加"android.intent.action.VIEW"的action标签,DEFAULT类型的category标签,和data类型

其实利用的隐式Intent来打开图片,这三者添加完才可以相应打开图片时发出的Intent

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值