我想根据JSON文件中的base-64数据记录为mainActivity设置背景图像。我应该将base-64数据转换为我的背景图像,因此drawable资源文件夹无法帮助我。有什么建议吗?
更多说明:我的可绘制资源中没有图像。我的应用程序读取JSON文件并解析它。其中一个JSON记录是应用程序背景图像的base-64数据。因此,在解析之后,我想解码这些数据并将其设置为我的主要活动的背景。
答案 0 :(得分:0)
试试这个
public Bitmap StringToBitMap(String base64String){
try{
byte [] encodeByte=Base64.decode(base64String,Base64.DEFAULT);
Bitmap bitmap=BitmapFactory.decodeByteArray(encodeByte, 0, encodeByte.length);
return bitmap;
}catch(Exception e){
e.getMessage();
return null;
}
}
通过
调用此方法String bas64String="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEBLAEsAAD/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoHBwYIDAoMDAsKCwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT.......=="
bas64String=bas64String.replace("data:image/jpeg;base64,","");
Bitmap b=StringToBitMap(bas64String);
if(b!=null)
{
Drawable dr = new BitmapDrawable(b);
yourlayout.setBackgroundDrawable(drawable);
}
答案 1 :(得分:0)
以下内容应该有效:
byte[] decodedString = Base64.decode(encodedString, Base64.DEFAULT);
Bitmap bitmap = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length);
Drawable backgroundDrawable = new BitmapDrawable(getResources(), bitmap);
yourLayout.setBackgroundDrawable(backgroundDrawable);