更改Android活动的背景图片

时间:2016-06-09 08:34:42

标签: android android-layout android-studio

我想根据JSON文件中的base-64数据记录为mainActivity设置背景图像。我应该将base-64数据转换为我的背景图像,因此drawable资源文件夹无法帮助我。有什么建议吗?

更多说明:我的可绘制资源中没有图像。我的应用程序读取JSON文件并解析它。其中一个JSON记录是应用程序背景图像的base-64数据。因此,在解析之后,我想解码这些数据并将其设置为我的主要活动的背景。

2 个答案:

答案 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);