Android中多层Fragment嵌套,调用相册返回Uri无法显示图片的问题解决方法
16lz
2022-06-18
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工具包
- Android(安卓)Sample NotePad学习二
- android调用NotificationManager.notify无效,通知栏不显示
- 利用drozer进行Android渗透测试
- [置顶] 我的Android进阶之旅------>android异步加载图片显示,并且
- android service 学习
- 编译FFMpeg的Android版本,并整合到android studio
- android 访问网络不能在主线程中进行以及在线程中操作UI的解决方
- 通过AndroidTestCase来进行android 单元测试