android java显示图片_Android ListView显示图片

Android中ListView是比较常用的控件,但一直都觉得创建ListView步骤有点繁琐,故在此总结一下,方便查阅。程序效果是实现一个ListView,ListView里面有标题,内容和图片,并加入点击和长按响应。大家知道ImageView 类虽然有一个 setImageUri 方法,但不能直接接受一个由网络地址生成的uri作为参数从而显示图片,我们只好使用其 setImageBitmap 方法,如

java代码:

BitmapmBitmap=null;

URLurl=newURL(imageUrl);

HttpURLConnectionconn= (HttpURLConnection) url.openConnection();

InputStreamis=conn.getInputStream();

mBitmap=BitmapFactory.decodeStream(is);

在SimpleAdapter中需要一个数据源,用来存储数据的,在显示图片时我们要用HashMap<>存储一个Bitmap;但仅存取了Bitmap时在ListView中是无法显示图片的,我们需要对SimpleAdapter进行处理 。

如下是对SimpleAdaptr处理的主要代码:

java代码:

adapter.setViewBinder(new ViewBinder() {

public boolean setViewValue(View view, Object data,

String textRepresentation) {

//判断是否为我们要处理的对象

if(view instanceof ImageView && data instanceof Bitmap){

ImageViewiv= (ImageView) view;

iv.setImageBitmap((Bitmap) data);

return true;

}else

return false;

}

});

看API对Android.widget.SimpleAdapter.ViewBinder的解释:

这个类可以利用外部客户价值的观点SimpleAdapter装订。你应该使用这个类绑定值观点不直接支持SimpleAdapter约束力或改变方式发生SimpleAdapter对于视图支持。

你可以使用该类来处理SimpleAdapter不直接支持的数据;

下面来看看完整的代码:

main.xml 中就是一个ListView  , list_item.xml 是为ListView中控件提供布局 ,就是一个ImageView。主要代码   MainActivity.Java

java代码:

package eoe.demo.listView;

import java.io.IOException;

import java.io.InputStream;

import java.NET.HttpURLConnection;

import java.net.MalformedURLException;

import java.net.URL;

import java.util.ArrayList;

import java.util.HashMap;

import java.util.List;

import android.app.Activity;

import android.graphics.Bitmap;

import android.graphics.BitmapFactory;

import android.os.Bundle;

import android.view.LayoutInflater;

import android.view.View;

import android.widget.ImageView;

import android.widget.ListView;

import android.widget.SimpleAdapter;

import android.widget.SimpleAdapter.ViewBinder;

public class MainActivity extends Activity {

ListView mListView;

View mView;

public static final StringimageUrl="自己想要的路径";

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

mView=LayoutInflater.from(this).inflate(R.layout.list_item,null);

mListView= (ListView) findViewById(R.id.mList);

List>mListData=getListData();

SimpleAdapteradapter=newSimpleAdapter(this, mListData, R.layout.list_item,

new String[]{"icon"}, new int[]{R.id.image});

adapter.setViewBinder(new ViewBinder() {

public boolean setViewValue(View view, Object data,

String textRepresentation) {

//判断是否为我们要处理的对象

if(view instanceof ImageView && data instanceof Bitmap){

ImageViewiv= (ImageView) view;

iv.setImageBitmap((Bitmap) data);

return true;

}else

return false;

}

});

mListView.setAdapter(adapter);

}

public List>getListData(){

List>list=newArrayList>();

HashMapmap=null;

for(inti=0;i<5;i++){

map=newHashMap();

map.put("icon",getBitmap());

list.add(map);

}

return list;

}

public Bitmap getBitmap(){

BitmapmBitmap=null;

try {

URLurl=newURL(imageUrl);

HttpURLConnectionconn= (HttpURLConnection) url.openConnection();

InputStreamis=conn.getInputStream();

mBitmap=BitmapFactory.decodeStream(is);

} catch (MalformedURLException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

return mBitmap;

}

}

java代码:

我们***就是要加上一句权限,我们来看看权限的代码:

对于android中的listview相信大家应该都不陌生,也是比较常用的组件。希望本篇文章对你有帮助吧!

【编辑推荐】

【责任编辑:李程站 TEL:(010)68476606】

点赞 0

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值