0
我想從MySQL數據庫下載圖像並在Android ImageView
中顯示圖像,但沒有顯示圖像。下面我已經包含了我的java文件和php文件的代碼。沒有錯誤,但在我的logcat中,我得到的工廠返回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);
?>
請編輯您的問題,包括您的logcat。 – buczek
如果您沒有特殊原因,請勿將圖像存儲在數據庫中。你應該將它們存儲在一個web文件夾中,可能用一個GUID aUUID重命名,然後在你的數據庫中有一個帶有該文件名的image_name列,然後通過HTML指向它。 將數據存儲在數據庫中是最糟糕的方法,除非你有一個非常特殊的原因,但我從來沒有見過這種情況下的任何人。 – TravisO