首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Volley下载镜像?

如何使用Volley下载镜像?
EN

Stack Overflow用户
提问于 2016-12-13 00:05:46
回答 2查看 19.6K关注 0票数 6

我正在尝试使用Volley库将图像下载到ImageView中。

我将Volley库的响应注入到ImageView中,但是我没有得到想要的结果。

请检查我的代码,并建议我可以在哪里进行更改以获得所需的结果。

代码语言:javascript
复制
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...");
            }
        });

    }
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-12-13 10:34:12

您使用的请求类型不正确。存在ImageRequestImageLoader

请参考an example snippet in the docs或以下示例:

代码语言:javascript
复制
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);

或者你可以使用NetworkImageView,也是Volley的一部分。

然而,,要注意的是,谷歌有deprecated their own Volley by phasing out Apache,但有一个临时解决办法:How to use the legacy Apache HTTP client on Android Marshmallow?

此外,如果您的应用程序使用Google Maps SDK ,则还需要添加一个uses-library/false attribute

但就像大多数人会建议的那样,如果可以的话,可以使用毕加索的http://square.github.io/picasso/或更新的东西。

票数 11
EN

Stack Overflow用户

发布于 2018-04-10 13:00:36

使用此构造函数版本:

代码语言:javascript
复制
new ImageRequest(url, myResponseListener, maxWidth,
                 maxHeight, scaleType, Config.RGB_565, myErrorListener);

Volley ImageRequest中不推荐使用此构造函数。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41104831

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档