2016-06-09 190 views
-1

我想根據JSON文件中的base-64數據記錄爲我的mainActivity設置背景圖像。我應該將base-64數據轉換爲我的背景圖片,所以可繪製資源文件夾無法幫助我。有什麼建議麼?更改Android活動的背景圖像

更多說明:我的繪圖資源中沒有圖像。我的應用程序讀取一個JSON文件並解析它。 JSON記錄之一是應用程序背景圖像的base-64數據。所以在解析之後,我想解碼這些數據並將其設置爲我的主要活動的背景。

+0

https://www.google.nl/webhp?sourceid=chrome -instant&ion = 1&espv = 2&ie = UTF-8#q = android%20base64%20to%20image –

+1

告訴我們你已經嘗試了哪些東西,哪些不起作用。請閱讀http://stackoverflow.com/help/how-to-ask –

+0

@AlexandreCartapanis起初,我爲我的佈局選擇了一個id,然後爲它設置一個默認背景圖像(在可繪製文件夾中):RelativeLayout rl =(RelativeLayout )findViewById(R.id.mainLayout); rl.setBackground(R.drawable.game_1);現在我想用我的json文件中的一個(base-64數據)來更改這個背景。在這裏,我不知道如何繼續。 –

回答

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