我开始选择活动
selectButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent, "Open from"), PICK_IMAGE);
}
});
我必须用结果更改imageview
图片,我不确定,但onActivityResult
的resultCode变量有-1值
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == PICK_IMAGE) {
//get data and change imageView
}
}
但我不知道从Intent数据中获取数据来设置imageView
的图片
答案 0 :(得分:1)
-1是RESULT_OK的常量值,表示您为成功完成的活动启动了。
使用调试器中断@Controller
@ComponentScan(basePackages = "org.vives.repositories")
public class HomeController extends HttpServlet {
@Autowired
private BeerRepository beerRepository;
@GetMapping("/")
public String index(Model model) {
List<Brewer> brewers = beerRepository.getAll();
model.addAttribute("brewers", brewers);
return "index";
}
}
方法。检查你回来的onActivityResult
意图。它应该有:
1:一个Bitmap对象,它是获得的图像或
2:一个URI,它是图像的路径,然后您可以使用Glide或Picasso之类的东西加载。
请参阅文档中的this section了解更多信息。
答案 1 :(得分:1)
resultCode中的-1表示操作成功。见here
您在Intent数据中找到的文件的路径。您可以像这样访问它:
Uri uri = data.getData();
然后您可以将ImageView设置为此URI:
ImageView.setImageURI(uri);
但是由于评论并且根据docs,不建议这样做。作为替代方案,请使用文档中所述的ImageView.setImageDrawable(Drawable)
或ImageView.setImageBitmap(android.graphics.Bitmap)
。
所以这里他们解释了如何使用setImageBitmap: https://stackoverflow.com/a/4717740/6845698
这里是如何从Uri中获取drawable,然后可以使用setImageDrawable设置它: https://stackoverflow.com/a/16718935/6845698
使用哪种方法取决于您的需求,例如文件类型。