Web API から画像を読み込もうとしているときに問題が発生しています。私はそれを行うことができますが、それらをオブジェクトのプロパティに入れようとするとクラッシュします。私が見つけることができる画像をASYNCロードする方法のすべての例を見てきましたが、オブジェクトではなく画像ビューに割り当てるものを見つけた人は誰でもいます。以下は私のソースの一部です。
呼び出しコードの例を次に示します
Movie Example = new Movie();
DownloadImageTask task = new DownloadImageTask();
String path = "http://d3gtl9l2a4fn1j.cloudfront.net/t/p/original" + example.getProfile_path();
example.setProfile(task.execute(path).get());
画像を取得するために使用する方法は次のとおりです
private class DownloadImageTask extends AsyncTask<String, Void, Bitmap> {
private ImageView bmImage;
public DownloadImageTask() {
this.bmImage = new ImageView(getActivity());
}
protected void onPreExecute() {
}
protected Bitmap doInBackground(String... urls) {
try{
URL url = new URL(urls[0]);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setDoInput(true);
connection.connect();
InputStream input = connection.getInputStream();
Bitmap result = BitmapFactory.decodeStream(input);
return result;
} catch (IOException e) {
e.printStackTrace();
return null;
}
}
protected void onPostExecute(Bitmap result) {
//set image of your imageview
try {
bmImage.setImageBitmap(result);
//close
} catch (Exception ex) {
Log.e("ERROR", "can't assign image to view");
}
}
}
似たようなものが欲しいのですが、imageviewに割り当てる代わりに、それを呼び出したメソッドに画像を返します。