在activityresult上更改图像

时间:2017-11-19 18:53:08

标签: android

我开始选择活动

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的图片

2 个答案:

答案 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

使用哪种方法取决于您的需求,例如文件类型。