Android中多层Fragment嵌套,调用相册返回Uri无法显示图片的问题解决方法
16lz
2021-01-23
imageView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent("android.intent.action.GET_CONTENT"); intent.setType("image/*"); getRootFragment().startActivityForResult(intent, 1); }});
private Fragment getRootFragment() { Fragment fragment = getParentFragment(); while (fragment.getParentFragment() != null) { fragment = fragment.getParentFragment(); } return fragment;}
@Overridepublic void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == 1) { Uri uri = data.getData(); // 注意此处不要直接调用 Glide.with(mCtx).load(path).into(imageView);否则,会无效 // 而是通过handler进行发送消息显示图片 if (uri != null) { Message message = Message.obtain(); message.obj = uri; handler.sendMessage(message); } } super.onActivityResult(requestCode, resultCode, data);}
Handler handler = new Handler() { @Override public void handleMessage(Message msg) { Uri path = (Uri) msg.obj; Glide.with(mCtx) .load(path) .into(imageView); super.handleMessage(msg); }};
更多相关文章
- Android WebView图片显示问题
- android 缩放图片与内存溢出
- android image cache 图片缓存 异步 下载
- android studio中.9.png图片处理
- 【Android开发小记--9】触摸事件---实现双指缩放图片
- android上传图片(同步上传)
- Android实现图片的倒影效果
- checkbox切换选中状态的图片
- 图片加载库Glide的使用