Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/218.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 studio如何在片段中而不是在活动中使用getBitmap?分类器&x27;ContentResolver';没有伴生对象_Android_Kotlin_Fragment - Fatal编程技术网

Android studio如何在片段中而不是在活动中使用getBitmap?分类器&x27;ContentResolver';没有伴生对象

Android studio如何在片段中而不是在活动中使用getBitmap?分类器&x27;ContentResolver';没有伴生对象,android,kotlin,fragment,Android,Kotlin,Fragment,我正在尝试将裁剪后的图像位图设置为视图中的imageview。在一个活动中,代码是有效的,但是我如何在片段中应用它呢 override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { super.onActivityResult(requestCode, resultCode, data) var result = CropImage.getActivityResult(data)

我正在尝试将裁剪后的图像位图设置为视图中的imageview。在一个活动中,代码是有效的,但是我如何在片段中应用它呢

override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
    super.onActivityResult(requestCode, resultCode, data)

    var result = CropImage.getActivityResult(data)
    var uri = result.uri

    if (requestCode == CropImage.CROP_IMAGE_ACTIVITY_REQUEST_CODE) {
        val bitmap = MediaStore.Images.Media.getBitmap(ContentResolver, uri)
        imageviewProfilePicture.setImageBitmap(bitmap)
    }
ContentResolver出现错误:

分类器“ContentResolver”没有伴生对象,并且 因此必须在这里初始化

我使用以下代码调用cropimage活动:

context?.let {
        CropImage.activity()
            .setGuidelines(CropImageView.Guidelines.ON)
            .setAspectRatio(1, 1)
            .start(it, this)
    };

在您当前拥有的
contentResolver
位置使用
context.contentResolver
。您需要获取
上下文
,因为
片段
(与
活动
不同)不是
上下文
子类。

使用
上下文。contentResolver
,您当前拥有
contentResolver
。您需要获取
上下文
,因为
片段
(不同于
活动
)不是
上下文
子类。

根本原因

若要使用方法,需要传递的实例。在Android中,您可以从上下文类或其子类(如活动、服务、应用程序等)获取实例

Fragment不是上下文的子类,这就是为什么不能直接在Fragment中获取实例的原因。您可以通过主机活动(片段附加到的活动)获得

解决方案

从更改代码

val bitmap = MediaStore.Images.Media.getBitmap(ContentResolver, uri)


根本原因

若要使用方法,需要传递的实例。在Android中,您可以从上下文类或其子类(如活动、服务、应用程序等)获取实例

Fragment不是上下文的子类,这就是为什么不能直接在Fragment中获取实例的原因。您可以通过主机活动(片段附加到的活动)获得

解决方案

从更改代码

val bitmap = MediaStore.Images.Media.getBitmap(ContentResolver, uri)