ボレーライブラリを使用してImageViewに画像をダウンロードしようとしています。
ボレーライブラリの応答をImageViewに挿入しましたが、目的の結果が得られません。
コードを確認し、目的の結果を得るためにどこで変更を加えることができるかを提案してください。
public class MainActivity extends AppCompatActivity {
Button response_click;
TextView text_response;
RequestQueue requestQueue;
ImageView image_download;
String server_url="https://upload.wikimedia.org/wikipedia/commons/thumb/c/c1/Starburst_in_NGC_4449_(captured_by_the_Hubble_Space_Telescope).jpg/1024px-Starburst_in_NGC_4449_(captured_by_the_Hubble_Space_Telescope).jpg";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
response_click=(Button) findViewById(R.id.click_response);
text_response=(TextView) findViewById(R.id.text_response);
image_download=(ImageView)findViewById(R.id.image_download);
}
public void response_click(View view){
requestQueue= Volley.newRequestQueue(getApplicationContext());
StringRequest stringRequest=new StringRequest(Request.Method.POST, server_url, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
image_download.setImageResource(Integer.parseInt(response));
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
text_response.setText("ou got an error...");
}
});
}
}
間違ったタイプのリクエストを使用しています。 ImageRequest
またはImageLoader
があります。
docs のスニペットの例または以下の例を参照してください。
ImageView mImageView;
String url = "http://i.imgur.com/7spzG.png";
mImageView = (ImageView) findViewById(R.id.myImage);
...
// Retrieves an image specified by the URL, displays it in the UI.
ImageRequest request = new ImageRequest(url,
new Response.Listener<Bitmap>() {
@Override
public void onResponse(Bitmap bitmap) {
mImageView.setImageBitmap(bitmap);
}
}, 0, 0, null,
new Response.ErrorListener() {
public void onErrorResponse(VolleyError error) {
mImageView.setImageResource(R.drawable.image_load_error);
}
});
// Access the RequestQueue through your singleton class.
MySingleton.getInstance(this).addToRequestQueue(request);
または、同じくVolleyの一部であるNetworkImageView
を使用することもできます。
ただし、Googleは Apache を段階的に廃止することで、独自のボレーを廃止したことに注意してください。一時的な回避策です: レガシーApacheHTTPクライアントをAndroid Marshmallow? で使用する方法
さらに、P +で、アプリがGoogle Maps SDKを使用している場合は、さらに uses-を追加する必要があります。ライブラリ/ false属性
しかし、ほとんどの人が提案するように、可能であれば、ピカソ http://square.github.io/picasso/ またはそれより新しいものを使用してください。
このコンストラクターバージョンを使用します。
new ImageRequest(url, myResponseListener, maxWidth,
maxHeight, scaleType, Config.RGB_565, myErrorListener);
このコンストラクターは、VolleyImageRequestで非推奨ではありません。