Android 在ListView中显示来自internet的图像
我希望这200张图片在ListView的每一行中。 我必须在哪里复制此代码,该代码在我的CustomAdapter中从internet收集图片Android 在ListView中显示来自internet的图像,android,listview,Android,Listview,我希望这200张图片在ListView的每一行中。 我必须在哪里复制此代码,该代码在我的CustomAdapter中从internet收集图片 for(int i = 1; i <= 200; i++){ final int ii = i; final ImageView imageView = new ImageView(CustomListView.this); RelativeLayout.LayoutParams lp = new RelativeL
for(int i = 1; i <= 200; i++){
final int ii = i;
final ImageView imageView = new ImageView(CustomListView.this);
RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT,RelativeLayout.LayoutParams.WRAP_CONTENT);
//linearLayout.addView(imageView,lp);
Thread thread = new Thread(){
@Override
public void run(){
final Bitmap bm = getBitmapFromURL("http://ruthe.de/cartoons/strip_"+getPictureName(ii)+".jpg");
runOnUiThread(new Runnable() {
@Override
public void run() {
if(bm !=null){
imageView.setImageBitmap(bm);
}
else {
//linearLayout.removeView(imageView);
}
}
});
}
};thread.start ();
}
for(int i=1;i毕加索允许在应用程序中轻松加载图像,通常只需一行代码!
有关库,请检查此链接
在页面底部,您可以下载jar文件并将其粘贴到libs文件夹中
Picasso.with(context).load("YOUR IMAGE URL").into(imageView);
int您的getView方法
喜欢吗
holder.image=(ImageView)vi.findViewById(R.id.image);
然后
Picasso.with(context).load("YOUR IMAGE URL").into(holder.image);
看一看毕加索图书馆。它使它变得非常简单。
要使用它,只需使用标准findViewById查找ImageView,然后使用以下代码:
Picasso.with(context).load("www.google.com/images/1").into(imageView);
只需输入URL和ImageView,毕加索就会异步加载图像并将其放入ImageView
我目前使用它在列表视图中显示400多个图像的列表,效果非常好。除了线程之外,您可以在适配器内部使用位图对象,并使用位图对象初始化图像视图,使用位置整数而不是(ii)。嗨,我找到了我的应用程序的解决方法:我创建了一个类类型:
public class myClass {
....
...
private Bitmap imguser;
..在costructor中,我添加了异步任务的对象,如Future,并发送了图像名称
已从服务器端收到
public myClass(..., ..,..,String userid, ...){
Future<Bitmap> futureimguser;
ExecutorService executor = Executors.newCachedThreadPool();
getImgFromSite getimguserfromsite = new getImgFromSite(userid,"imguser");
futureico = executor.submit(geticofromsite);
futureimguser = executor.submit(getimguserfromsite)
.......
this.imguser = futureimguser.get();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ExecutionException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
this.icopoi = futureico.get();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ExecutionException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
executor.shutdown();
publicMyClass(…,…,stringuserid,…){
未来imguser;
ExecutorService executor=Executors.newCachedThreadPool();
getImgFromSite getimguserfromsite=新的getImgFromSite(用户ID,“imguser”);
futureico=执行人提交(geticofromsite);
futureimguser=executor.submit(getimguserfromsite)
.......
this.imguser=futureimguser.get();
}捕捉(中断异常e){
//TODO自动生成的捕捉块
e、 printStackTrace();
}捕获(执行例外){
//TODO自动生成的捕捉块
e、 printStackTrace();
}
试一试{
this.icopoi=futureico.get();
}捕捉(中断异常e){
//TODO自动生成的捕捉块
e、 printStackTrace();
}捕获(执行例外){
//TODO自动生成的捕捉块
e、 printStackTrace();
}
executor.shutdown();
接下来我有一个类似下面的方法,从我的站点加载图像
private final class getImgFromSite implements Callable<Bitmap> {
String imgsrc = new String();
String imgtipo = new String();
public getImgFromSite(String srcimg,String imgtipo) {
this.imgsrc = srcimg;
this.imgtipo = imgtipo;
}
@Override
public Bitmap call() throws Exception {
String imgpath;
if(imgtipo.compareTo("imguser") == 0){
imgpath = "http://mysite/assets/imgcomics/"+imgsrc+".jpg";
}
else{
imgpath = "http://mysite/"+imgsrc;
}
Bitmap myBitmap;
URL url = new URL(imgpath);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setDoInput(true);
connection.connect();
InputStream input = connection.getInputStream();
myBitmap= BitmapFactory.decodeStream(input);
return myBitmap;
}
}
private final类getImgFromSite实现了可调用{
字符串imgsrc=新字符串();
字符串imgtipo=新字符串();
公共getImgFromSite(字符串srcimg,字符串imgtipo){
this.imgsrc=srcimg;
this.imgtipo=imgtipo;
}
@凌驾
公共位图调用()引发异常{
字符串imgpath;
if(imgtipo.compareTo(“imguser”)==0){
imgpath=”http://mysite/assets/imgcomics/“+imgsrc+”.jpg”;
}
否则{
imgpath=”http://mysite/“+imgsrc;
}
位图;
URL=新URL(imgpath);
HttpURLConnection connection=(HttpURLConnection)url.openConnection();
connection.setDoInput(true);
connection.connect();
InputStream输入=连接。getInputStream();
myBitmap=BitmapFactory.decodeStream(输入);
返回我的位图;
}
}
希望我能为您提供帮助!您也可以尝试通用图像加载器-谢谢。我使用了通用图像加载器
private final class getImgFromSite implements Callable<Bitmap> {
String imgsrc = new String();
String imgtipo = new String();
public getImgFromSite(String srcimg,String imgtipo) {
this.imgsrc = srcimg;
this.imgtipo = imgtipo;
}
@Override
public Bitmap call() throws Exception {
String imgpath;
if(imgtipo.compareTo("imguser") == 0){
imgpath = "http://mysite/assets/imgcomics/"+imgsrc+".jpg";
}
else{
imgpath = "http://mysite/"+imgsrc;
}
Bitmap myBitmap;
URL url = new URL(imgpath);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setDoInput(true);
connection.connect();
InputStream input = connection.getInputStream();
myBitmap= BitmapFactory.decodeStream(input);
return myBitmap;
}
}