-
<TextView
-
android:layout_width=“wrap_content”
-
android:layout_height=“wrap_content”
-
android:layout_alignTop="@id/image_view"
-
android:layout_alignBottom="@id/image_view"
-
android:layout_marginLeft=“20dp”
-
android:layout_alignParentRight=“true”
-
android:gravity=“center_vertical”
-
android:layout_toRightOf="@id/image_view"
-
android:singleLine=“true”
-
android:ellipsize=“end”
-
android:text="@string/hello"
-
android:id="@+id/text_view"
-
/>
加入访问网络和读取,写入sdcard的权限。
[java] view plain copy
接下来,我们来看看MainActivity.java。性能考虑,我们使用convertView和ViewHolder来重用控件。这里涉及到比较关键的一步,我们会在getView的时候给ViewHolder中的ImageView设置tag,其值为要放置在该ImageView上的图片的url地址。这个tag很重要,在异步下载图片完成回调的方法中,我们使用findViewWithTag(String url)来找到ListView中对应的ImagView,然后给该ImageView设置图片即可。其他的就是设置adapter的一般操作了。
[java] view plain copy
-
public class MainActivity extends Activity {
-
ListView mListView;
-
ImageDownloader mDownloader;
-
MyListAdapter myListAdapter;
-
private static final String TAG = “MainActivity”;
-
int m_flag = 0;
-
private static final String[] URLS = {
-
//图片地址就不贴了,自己去这篇帖子中找吧:http://www.cnblogs.com/liongname/articles/2345087.html
-
//其中有几张图片访问不了。
-
};
-
@Override
-
public void onCreate(Bundle savedInstanceState) {
-
super.onCreate(savedInstanceState);
-
setContentView(R.layout.main);
-
Util.flag = 0;
-
mListView = (ListView) findViewById(R.id.listview);
-
myListAdapter = new MyListAdapter();
-
mListView.setAdapter(myListAdapter);
-
}
-
private class MyListAdapter extends BaseAdapter {
-
private ViewHolder mHolder;
-
@Override
-
public int getCount() {
-
return URLS.length;
-
}
-
@Override
-
public Object getItem(int position) {
-
return URLS[position];
-
}
-
@Override
-
public long getItemId(int position) {
-
return position;