SkImageDecoder :: Factory возвратил ноль в переработке - PullRequest
0 голосов
/ 11 февраля 2019

Я получаю изображение от пользователя через камеру или галерею и преобразовываю его в ByteArray и передаю его в базу данных sqlite. Теперь я хочу вернуть его обратно в recyclerView, когда я декодирую ByteArray для отображения в recyclerView, который он дает мне "SkImageDecoder :: Factory returnнулевая ошибка в OnbindViewHolder, как декодировать Bytearray в Bitmap ??Я использовал метод BitmapFactory, но он не работает для меня.В чем проблема, я не могу получить это?

Растровое изображение в ByteArray

override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
        super.onActivityResult(requestCode, resultCode, data)
        when (requestCode) {
            CameraCode ->
                if (resultCode == Activity.RESULT_OK) {
                    var bitmap = data?.extras?.get("data")
                    image.setImageBitmap(bitmap as Bitmap)
                    stream = ByteArrayOutputStream()
                    bitmap.compress(Bitmap.CompressFormat.PNG, 90, stream)
                    ByteImage = stream.toByteArray()
                    _data.Image = ByteImage
//                    if(_data.Image!==null)
//                    {
//                        Log.e("1","Ok")
//                    }
                }
            GalleryCode ->
                if (resultCode == Activity.RESULT_OK) {
                    var Uri = data!!.data
                    var bitmap = MediaStore.Images.Media.getBitmap(activity.contentResolver, Uri)
                    stream = ByteArrayOutputStream()
                    image.setImageBitmap(bitmap as Bitmap)
                    bitmap.compress(Bitmap.CompressFormat.PNG, 90, stream)
                    ByteImage = stream.toByteArray()
                    _data.Image = ByteImage
                }
        }

    }

ByteArray в растровое изображение

 override fun onBindViewHolder(holder: customViewHolder?, position: Int) {

        var position = HomeList.get(position)
        var bitmap = BitmapFactory.decodeByteArray(position.Image,0,position.Image!!.size)
        holder?.text?.text = position.text
        holder?.image?.setImageBitmap(bitmap)
        holder!!.l1.setOnClickListener {
            Toast.makeText(ctx,"${position.text}",Toast.LENGTH_SHORT).show()
        }

    }


    inner class customViewHolder(view:View) : RecyclerView.ViewHolder(view)
    {
        var image = view.findViewById<ImageView>(R.id.recycler_image)
        var text = view.findViewById<TextView>(R.id.recycler_title)
        var l1 = view.findViewById<RelativeLayout>(R.id.home_layout)

    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...