2015-06-14 5 views
1

Я пытаюсь сделать listview с изображениями base64. Данные Listviews представляют собой json-массив с сервера и созданы для hashmap.Android Studio base64 image to ListView

    JSONObject c = products.getJSONObject(i); 

        // Storing each json item in variable 
        String id = c.getString("pid"); 
        String createdAt = c.getString("created_at"); 
        String description = c.getString("description"); 
        String image = c.getString("image"); 

        // creating new HashMap 
        HashMap<String, String> map = new HashMap<String, String>(); 

        // adding each child node to HashMap key => value 
        map.put("pid", id); 
        map.put("description", description); 
        map.put("image", image); 
        // adding HashList to ArrayList 
        productsList.add(map); 
       } 

И:

protected void onPostExecute(String file_url) { 
     // updating UI from Background Thread 
     runOnUiThread(new Runnable() { 
      public void run() { 
       /*Updating parsed JSON data into ListView*/ 
       ListAdapter adapter = new SimpleAdapter(
         listActivity.this, productsList, 
         R.layout.list_item, new String[] { "product_id", 
         "product_description", "product_image" }, 
         new int[] { R.id.pid, R.id.description, R.id.image }); 
       // updating listview 
       setListAdapter(adapter); 
      } 
     }); 

    } 

Как я могу сделать эту строку изображения преобразуются в ImageView? Я новичок в Android Studio, так что я не знаю, если тот умный способ сделать это ..

Над кодом от: http://www.androidhive.info/2012/05/how-to-connect-android-with-php-mysql/ Если это помогает.

ответ

0

Первое, что вам нужно сделать, это преобразовать base64 в растровое изображение, а затем вы можете установить его на imageView.

Как декодировать base64 к растровым:

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

Как установить растровое ImageView:

ImageView mImg = (ImageView) findViewById(R.id.(your xml img id)); 
mImg.setImageBitmap(decodedByte); 
+0

Как это работает с ListView? Это отлично работает с одним изображением, но я не могу создавать изображения ListViews с этим. – Vmaatta