2016-11-02 2 views
0

Я хочу загрузить изображение из базы данных MySQL и отобразить изображение на Android ImageView, но оно не отображается. Ниже я включил код для моего java-файла и php-файла. Ошибок нет, но в моем логарифме я получаю фабричный возврат null. Я не могу найти, где я ошибаюсь. Заранее спасибо.изображение не отображается в android

import android.graphics.Bitmap; 
import android.graphics.BitmapFactory; 
import android.util.Base64; 

import org.json.JSONArray; 
import org.json.JSONException; 
import org.json.JSONObject; 

import java.io.BufferedReader; 
import java.io.IOException; 
import java.net.MalformedURLException; 
import java.net.URL; 

/** 
* Created by GIOVANI on 10/19/2016. 
*/ 

public class GetAllImages { 

    public static String[] imageURLs; 
    public static Bitmap[] bitmaps; 

    public static final String JSON_ARRAY="result"; 
    public static final String IMAGE_URL = "url"; 
    private String json; 
    private JSONArray urls; 

    public GetAllImages(String json){ 
     this.json = json; 
     try { 
      JSONObject jsonObject = new JSONObject(json); 
      urls = jsonObject.getJSONArray(JSON_ARRAY); 
     } catch (JSONException e) { 
      e.printStackTrace(); 
     } 
    } 

    private Bitmap getImage(JSONObject jo){ 
     URL url = null; 
     Bitmap image = null; 

     try { 
      url = new URL(jo.getString(IMAGE_URL)); 
      image = BitmapFactory.decodeStream(url.openConnection().getInputStream()); 
     } catch (MalformedURLException e) { 
      e.printStackTrace(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } catch (JSONException e) { 
      e.printStackTrace(); 
     } 

     return image; 

    } 

    public void getAllImages() throws JSONException { 
     bitmaps = new Bitmap[urls.length()]; 

     imageURLs = new String[urls.length()]; 

     for(int i=0;i<urls.length();i++){ 
      imageURLs[i] = urls.getJSONObject(i).getString(IMAGE_URL); 
      JSONObject jsonObject = urls.getJSONObject(i); 
      bitmaps[i]=getImage(jsonObject); 
     } 
    } 


} 

И это мой PHP код:

<?php 

//Importing database 
require_once('dbConnect.php'); 

$sql = "SELECT * FROM foto "; 
//result 
$r = mysqli_query($con,$sql); 

$result = array(); 

while($row = mysqli_fetch_array($r)){ 
array_push($result,array("id"=>$row['id'], 
"image"=>$row['image'], 
"judul"=>$row['judul'] 
)); 
} 

//Tampilkan dalam format json 
echo json_encode(array('result'=>$result)); 
mysqli_close($con); 
?> 
+0

Пожалуйста, отредактируйте свой вопрос, чтобы включить свой логарифм. – buczek

+0

Если у вас нет особых причин, НЕ храните изображения внутри своей базы данных. Вы должны хранить их в веб-папке, возможно, переименованной с GUID aka UUID, а затем в своей базе данных у вас есть столбец image_name с этим именем файла, а затем просто укажите на него через HTML. Хранение изображений внутри вашей базы данных является наихудшим подходом здесь, если у вас нет особо специализированной причины, но я никогда никого не видел в этой ситуации. – TravisO

ответ

1

для загрузки изображения с сервера. вы можете использовать любой API загрузки изображений. как Glide или Picasso или универсальный загрузчик изображений.

Glide рекомендован компанией Google. source

Вы можете легко интегрировать и избежать некоторой проблемы с памятью и медленной загрузкой.

, как, как:

Picasso.with(this) 
    .load("http://nuuneoi.com/uploads/source/playstore/cover.jpg") 
    .fit() 
    .centerCrop() 
    .into(ivImgPicasso); 

так нравится.

Счастливые загрузки.

Смежные вопросы