0
MySQLデータベースから画像をダウンロードして、画像をAndroid ImageView
に表示したいが表示されない。以下は私のJavaファイルとPHPファイルのコードを含んでいます。エラーはありませんが、私のlogcatでは工場出荷時にnullが返されます。私はどこに間違っているのか分かりません。前もって感謝します。画像がアンドロイドに表示されない
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フォルダに格納する必要があります.UUIDというGUIDを使用して名前を変更した後、そのファイル名のimage_name列をデータベースに格納し、HTMLを使用して単純にそのファイルを参照する必要があります。 非常に特殊な理由がない限り、データベース内に画像を保存するのが最悪の方法ですが、これまで誰も見たことがありません。 – TravisO