Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在activityresult上更改图像_Android - Fatal编程技术网

Android 在activityresult上更改图像

Android 在activityresult上更改图像,android,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);

我启动选择器活动

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
    }
}

但我不知道如何从意图数据中获取数据,以设置
图像视图的图片

-1是常量值,表示您的活动已启动,结果已成功完成

使用调试器中断
onActivityResult
方法。检查您得到的
数据
意图。它应该有:

1:位图对象,即获取或删除的图像

2:一个URI,它是图像的路径,您可以使用Glide或Picasso之类的工具加载图像


有关更多信息,请参见文档中的。

-1是常量值,表示您的活动已启动,结果已成功完成

使用调试器中断
onActivityResult
方法。检查您得到的
数据
意图。它应该有:

1:位图对象,即获取或删除的图像

2:一个URI,它是图像的路径,您可以使用Glide或Picasso之类的工具加载图像


有关更多信息,请参阅文档中的。

结果代码中的-1表示操作成功。看

在意图数据中找到的文件的路径。您可以这样访问它:

Uri uri = data.getData();
然后,可以将ImageView设置为此URI:

ImageView.setImageURI(uri);
但多亏了这一评论,据报道,这是不推荐的。另一种选择是使用文档中所述的
ImageView.setImageDrawable(Drawable)
ImageView.setImageBitmap(android.graphics.Bitmap)

所以这里他们解释了如何使用setImageBitmap:

下面是如何从Uri中获取可绘制文件,然后可以使用setImageDrawable进行设置:


使用哪一个取决于您的需要,如文件类型。

结果代码中的-1表示操作成功。看

在意图数据中找到的文件的路径。您可以这样访问它:

Uri uri = data.getData();
然后,可以将ImageView设置为此URI:

ImageView.setImageURI(uri);
但多亏了这一评论,据报道,这是不推荐的。另一种选择是使用文档中所述的
ImageView.setImageDrawable(Drawable)
ImageView.setImageBitmap(android.graphics.Bitmap)

所以这里他们解释了如何使用setImageBitmap:

下面是如何从Uri中获取可绘制文件,然后可以使用setImageDrawable进行设置:


使用哪一种取决于您的需要,如文件类型。

使用图像加载库,如Glide或Picasso。不可能……当然可以。很多开发人员都使用它们。这是一个学生练习,有一些规则,规则应该是“使用专业人员使用的东西”。专业人士使用图像加载库,而不是重新发明轮子。使用图像加载库,如Glide或毕加索。不可能……当然可以。很多开发人员都使用它们。这是一个学生练习,有一些规则,规则应该是“使用专业人员使用的东西”。专业人士使用图像加载库,而不是重新发明轮子。
ACTION\u GET\u CONTENT
将返回
Uri
ACTION\u GET\u CONTENT
将返回
Uri
setImageURI()
阻止用于加载和解码图像的主应用程序线程。不建议使用此方法。
setImageURI()
阻止用于加载和解码图像的主应用程序线程。不建议采用这种方法。