如何通过 URL Android 在 ImageView 中设置图像
How to set images inside of ImageView by URL Android
我发现 this tutorial"How to load an ImageView by URL in Android",这对我来说效果很好,但在我的情况下,我不想只设置一些图像,而是一个列表,我有一个 Api RestFull 其中 returns 一些字符串和图像 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();
}
谢谢!
使用 Picasso 让您的生活更轻松。
加载图片可以是一个简单的一行
Picasso.with(context).load("http://i.imgur.com/DvpvklR.png").into(imageView);
在网站上查看更多信息
http://square.github.io/picasso/
这里有一些关于为什么使用 Picasso 是 Stephen 建议的更好解决方案的补充。您需要考虑很多事情,例如内存、缓存等。只要您正确编程,Picasso 就会为您处理所有繁重的工作,而且它非常简单易用。
你必须在你的项目中添加 Picasso 库并编写这样的代码。
Picasso.with(context).load("image url").into("ImageView where you have to load image");
我发现 this tutorial"How to load an ImageView by URL in Android",这对我来说效果很好,但在我的情况下,我不想只设置一些图像,而是一个列表,我有一个 Api RestFull 其中 returns 一些字符串和图像 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();
}
谢谢!
使用 Picasso 让您的生活更轻松。
加载图片可以是一个简单的一行
Picasso.with(context).load("http://i.imgur.com/DvpvklR.png").into(imageView);
在网站上查看更多信息 http://square.github.io/picasso/
这里有一些关于为什么使用 Picasso 是 Stephen 建议的更好解决方案的补充。您需要考虑很多事情,例如内存、缓存等。只要您正确编程,Picasso 就会为您处理所有繁重的工作,而且它非常简单易用。
你必须在你的项目中添加 Picasso 库并编写这样的代码。
Picasso.with(context).load("image url").into("ImageView where you have to load image");