Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/304.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
Java 在ImageView中设置位图图像_Java_Android_Bitmap_Imageview_Base64 - Fatal编程技术网

Java 在ImageView中设置位图图像

Java 在ImageView中设置位图图像,java,android,bitmap,imageview,base64,Java,Android,Bitmap,Imageview,Base64,我试过这个 try { byte[] decodedString = Base64.decode(repPlus, Base64.URL_SAFE); Bitmap decodedByte = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length); holder.imageView.setImageBitmap(decodedByte); } catch

我试过这个

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
然后我试过这个。它消除了错误。用于解码base64字符串

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());
    }

但是图像不会在应用程序中查看。

在初始化位图
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);

希望这有帮助在初始化位图
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);

希望这有帮助

我遇到了getResources()的问题。我在一个适配器类中。这样可以吗?然后向适配器构造函数添加一个上下文变量,然后执行如下操作:
BitmapDrawable drawable=new BitmapDrawable(Context.getResources(),decodedByte)如果我找到一个solution@MikaelFaire您能重新检查Base64字符串吗?因为如果您正确地进行了转换,这应该可以工作。此外,检查holder.imageview是否设置清楚。我的base64字符串如下“data:image/jpeg;base64,/9j/4aaqskzjrgabaaqaaad/2wCE………”我在getResources()上遇到了问题。我在一个适配器类中。这样可以吗?然后向适配器构造函数添加一个上下文变量,然后执行如下操作:
BitmapDrawable drawable=new BitmapDrawable(Context.getResources(),decodedByte)如果我找到一个solution@MikaelFaire您能重新检查Base64字符串吗?因为如果您正确地进行了转换,这应该可以工作。此外,检查holder.imageview是否设置清楚。我的base64字符串如下“data:image/jpeg;base64,/9j/4aaqskzjrgabaaaqaad/2wCE…………”