//主Activity
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.SimpleAdapter.ViewBinder;
import android.widget.Toast;
public class TestListView extends Activity {
private String sightID;
private Bitmap bmp;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.comment);
bmp = getLoacalBitmap("/sdcard/image.jpg");
ListView listView = (ListView) findViewById(R.id.listView1);
MyListAdapter adapter = new MyListAdapter(TestListView.this, getData());
listView.setAdapter(adapter);
}
public static Bitmap getLoacalBitmap(String url) {
try {
FileInputStream fis = new FileInputStream(url);
return BitmapFactory.decodeStream(fis);
} catch (FileNotFoundException e) {
e.printStackTrace();
return null;
}
}
// Bitmap bmp = BitmapFactory.decodeFile("/sdcard/1.jpg");
private List<Commentinfo> getData(){
ArrayList<Commentinfo> arrayList = new ArrayList<Commentinfo>();
for(int i=0;i<10;i++){
arrayList.add(new Commentinfo(bmp, "用户"+i, "内容"+i));
}
return arrayList;
}
}
//2.Commentinfo.java
package com.su;
import android.graphics.Bitmap;
public class Commentinfo {
private Bitmap bitmap;
private String comment;
private String user;
public Commentinfo(Bitmap bitmap, String user ,String comment ) {
super();
this.bitmap = bitmap;
this.user = user ;
this.comment = comment;
}
public Bitmap getBitmap() {
return bitmap;
}
public void setBitmap(Bitmap bitmap) {
this.bitmap = bitmap;
}
public String getComment() {
return comment;
}
public void setComment(String comment) {
this.comment = comment;
}
public String getUser() {
return user;
}
public void setUser(String user) {
this.user = user;
}
}
3.Mylistadapter.java
package com.su;
import java.util.List;
import android.app.Activity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
public class MyListAdapter extends BaseAdapter {
private Activity context;
private List<Commentinfo> list;
public MyListAdapter(Activity context, List<Commentinfo> list) {
this.context = context;
this.list = list;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = context.getLayoutInflater();
View itemView = inflater.inflate(R.layout.commentchild, null);
Commentinfo info = list.get(position);
TextView textView = (TextView) itemView.findViewById(R.id.itemUser);
TextView textView1 = (TextView) itemView.findViewById(R.id.itemContent);
ImageView imageView = (ImageView) itemView
.findViewById(R.id.profileImage);
textView.setText(info.getUser());
textView1.setText(info.getComment());
imageView.setImageBitmap(info.getBitmap());
return itemView;
}
@Override
public int getCount() {
return list.size();
}
@Override
public Object getItem(int position) {
return list.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
}
//
源码下载http://dl.dbank.com/c0w7tekit4
分享到:
相关推荐
对于Android,可以使用Glide或Picasso加载图片到ImageView,但需要自定义适配器来实现ListView的图片加载。 3. **关联ImageList**:将创建好的ImageList与ListView关联起来,这样ListView的每个项就可以显示对应的...
在Adapter的`getView()`方法中,我们将创建一个ImageView,并在其中使用AsyncTask加载图片。在`doInBackground()`方法中,我们可以使用HttpURLConnection或者更现代的Volley库来获取网络资源,然后使用 ...
- 然后,创建自定义的`ListAdapter`,在`getView()`方法中使用异步加载图片,并复用convertView。 - 接着,实现`GestureDetector`,监听滑动事件,根据需求处理手势。 - 最后,如果需要,可以引入`...
"Android实现ListView异步加载图片" Android 实现 ListView 异步加载图片是一种常见的技术,旨在提高应用程序的性能和用户体验。本文将详细介绍 Android 中实现 ListView 异步加载图片的方法,并对相关的技术概念...
为了解决这个问题,我们需要实现ListView的异步加载图片功能。本篇文章将详细介绍如何通过软引用缓存图片,实现高效、流畅的异步加载机制。 一、异步加载原理 异步加载的基本思想是将耗时的操作(如网络请求和图片...
在ListView中使用Glide,可以在Adapter的getView方法中调用Glide.with(context).load(url).into(imageView)来加载图片。Glide会自动管理图片的生命周期,防止内存泄漏。 4. **缓存机制**:异步加载的同时,利用本地...
"ListView实现动态加载"这个主题,涉及到的是如何高效地处理大量数据并根据用户滚动时动态加载更多内容的技术。动态加载通常用于节省内存,提高用户体验,避免一次性加载过多数据导致应用卡顿。 1. **ListView基础*...
总的来说,通过C# WinForm的ListView控件,我们可以轻松地实现图片浏览功能,只需合理配置视图、加载图片到ImageList、创建ListViewItem并绑定事件处理,即可为用户提供一个直观、易用的图片查看界面。在实际项目中...
2. 当需要加载图片时,首先检查HashMap中是否存在对应的SoftReference。如果存在且Bitmap未被回收,直接返回Bitmap;否则,启动一个新的后台任务下载图片。 3. 后台任务下载图片完成后,利用SoftReference将Bitmap...
异步加载图片通常使用线程池或`AsyncTask`来实现。线程池可以管理多个并发任务,避免过多的线程创建导致系统资源浪费。`AsyncTask`则提供了一种简单的后台执行任务并更新UI的方式。在这个示例中,可能会使用`...
本实例将详细讲解如何实现“Android ListView异步加载图片”,结合线程池、数据库和本地保存来优化性能。 首先,我们需要理解异步加载的概念。在Android中,由于主线程负责用户界面的更新,因此不应在主线程中执行...
3. **加载图片**:在ListView的Adapter中,使用ImageLoader的`displayImage()`方法加载图片。这个方法会根据已存在的缓存决定是否需要重新请求网络。 ```java public View getView(int position, View convertView,...
本示例“ListView分页加载及图片缓存显示的实现”着重讲解如何优化ListView的性能,提高用户体验,特别是处理大量图片时。以下是对该主题的详细解释: 1. **ListView分页加载**: 分页加载(Pagination)是一种...
综上所述,实现ListView中的异步加载图片进度条,需要综合运用多线程、图片缓存、UI更新等技术,并遵循良好的代码组织和错误处理原则。通过合理的封装和接口设计,可以使得代码更加规范,同时也提升了用户体验。
标题“ListView延迟加载图片改进”正是针对这个问题,通过延迟加载技术来提升用户体验。 延迟加载(Lazy Loading)是一种策略,它不一次性加载所有图片,而是当用户滚动到某一个列表项时,才加载对应的图片。这种...
在Android开发中,自定义ListView实现下拉刷新和加载更多的功能是常见的需求,尤其是在构建具有数据流滚动和实时更新的应用程序时。这个"自定义ListView实现下拉刷新+加载更多功能Demo"旨在帮助开发者理解如何集成...
具体到这个压缩包,"listview网络加载图片"可能是包含了一个自定义Adapter的示例代码,这个Adapter能够处理网络图片的加载。通用的实现可能包括以下几个关键步骤: 1. **异步加载**:使用AsyncTask或其他异步机制,...