我找到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();
}
谢谢!
答案 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)
这里有一些补充,为什么使用毕加索是斯蒂芬建议的更好的解决方案。你需要考虑许多事情,如内存,缓存等。毕加索只要你正确编程就可以处理所有的艰苦工作,并且它非常简单易用。