如何通过网址Android

时间:2016-12-19 18:09:42

标签: java android android-imageview

我找到this tutorial"如何在Android和#34;中按网址加载ImageView,这对我来说很好,但在我的情况下,我不想只设置几张图片但是一个列表然后,我有一个Api RestFull返回一些字符串和图像URL,正如我在该教程中看到的那样,它使用AsyncTask下载图像并设置在ImageView内,在我的如果我已经使用AsyncTask从我的API中检索,我是否需要在我的ModelClass中放置一些内容来自动下载?

这就是我的......

public void getAdsUser(final Activity context){
    new AsyncTask<Void, Void, String>() {
        @Override
        protected void onPreExecute() {
            super.onPreExecute();
        }
        @Override
        protected String doInBackground(Void... voids) {
            try {
                Response = new WebBase().getUserAds(context);
                if(Response.equals("NODATA")){
                    return "NODATA";
                }
                if (Response.equals("EMPTY")){
                    return "EMPTY";
                }
                if (Response.isEmpty()){
                    return "ERROR";
                }
                else {
                    return "OK";
                }
            } catch (IOException e) {
                e.printStackTrace();
                return "ERROR";
            }
        }
        @Override
        protected void onPostExecute(String s) {
            super.onPostExecute(s);
            switch (s){
                case "NODATA":
                    GenericAlertDialog.MakeDialog(UserAds.this,R.string.NODATA);
                    break;
                case "ERROR":
                    GenericAlertDialog.MakeDialog(UserAds.this,R.string.Error_Internet);
                    break;
                case "EMPTY":
                    isVisible_ads.setVisibility(View.VISIBLE);
                    break;
                case "OK":
                    UserModelView[] modelArray = new Gson().fromJson(Response,UserModelView[].class);
                    List<UserModelView> userModelView = new ArrayList<>(Arrays.asList(modelArray));
                    adapterUserView.add(userModelView);
                    recyclerView.setAdapter(adapterUserView);
                    break;
            }
        }
    }.execute();
}

谢谢!

3 个答案:

答案 0 :(得分:3)

让你的生活更轻松,并使用毕加索。

加载图片可以是简单的一行

Picasso.with(context).load("http://i.imgur.com/DvpvklR.png").into(imageView);

在网站上查看更多信息 http://square.github.io/picasso/

答案 1 :(得分:2)

你必须在你的项目中添加Picasso库并编写这样的代码。

Picasso.with(context).load("image url").into("ImageView where you have to load image");

答案 2 :(得分:1)

这里有一些补充,为什么使用毕加索是斯蒂芬建议的更好的解决方案。你需要考虑许多事情,如内存,缓存等。毕加索只要你正确编程就可以处理所有的艰苦工作,并且它非常简单易用。