Установите растровое изображение в ImageView - PullRequest
0 голосов
/ 02 июля 2018

Я пробовал это

try {
        byte[] decodedString = Base64.decode(repPlus, Base64.URL_SAFE);
        Bitmap decodedByte = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length);
        holder.imageView.setImageBitmap(decodedByte);
    } catch (Exception e) {
        Log.d("Error: ", e.getMessage());
    }

И он возвращает ошибку:

bad base-64

А потом я попробовал это Плохая ошибка base-64 . И это устраняет ошибку. И Base64 в Bitmap для отображения в ImageView для декодирования base64 String

try {
        String repSlash = product.getImage().replace("/", "_");
        String repPlus = repSlash.replace("+", "-");
        byte[] decodedString = Base64.decode(repPlus, Base64.URL_SAFE);
        Bitmap decodedByte = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length);
        holder.imageView.setImageBitmap(decodedByte);
    } catch (Exception e) {
        Log.d("Error: ", e.getMessage());
    }

Но изображение не просматривается в приложении.

1 Ответ

0 голосов
/ 02 июля 2018

Попробуйте сделать это после инициализации Растрового изображения decodedByte

BitmapDrawable drawable = new BitmapDrawable(getResources(), decodedByte);
holder.imageView.setBackgroundDrawable(drawable);

РЕДАКТИРОВАТЬ: Попробуйте это:

String base64Image = product.getImage().split(",")[1];

byte[] decodedString = Base64.decode(base64Image, Base64.DEFAULT);
Bitmap decodedByte = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length);

holder.imageView.setImageBitmap(decodedByte);

Надеюсь, это помогло!

...