fafasj 2017-08-07 09:00 采纳率: 50%
浏览 1648

怎么把List里的所有图片显示出来,代码如下。希望大神们能在给的代码里增删。小白哈

public class MainActivity extends AppCompatActivity {
// 图片和id列表
private List picList = new ArrayList();
private Bitmap b;
private String name;
private ListView Lv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getImagePathFromSD();
Lv= (ListView) findViewById(R.id.lv);
Lv.setAdapter(new MyAdapter());
}

private class MyAdapter extends BaseAdapter{

    @Override
    public int getCount() {
        return picList.size()/2;
    }

    @Override
    public Object getItem(int position) {
        return null;
    }

    @Override
    public long getItemId(int position) {
        return 0;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        View view;
        if (convertView==null){
           view= View.inflate(getApplicationContext(),R.layout.item,null);
        }else {
            view=convertView;
        }
        //找到数据来显示
        ImageView iv_potoes= (ImageView)view.findViewById(R.id.imageView1);
        TextView tv_name= (TextView) view.findViewById(R.id.tvname);
        //picList.get(position);
        iv_potoes.setImageBitmap(b);
        tv_name.setText(name);
        tv_name.setTextColor(Color.RED);
        return view;
    }
}


// 从sd卡获取图片资源
private List<Object> getImagePathFromSD() {
    // 得到sd卡内路径
    String imagePath =Environment.getExternalStorageDirectory().toString() + "/nongbang";
    // 得到该路径文件夹下所有的文件
    File mfile = new File(imagePath);
    File[] files = mfile.listFiles();
    // 将所有的文件存入ArrayList中,并过滤所有图片格式的文件
    for (int i = 0; i < files.length; i++) {
        File file = files[i];

        if (checkIsImageFile(file.getPath())) {
            //获取图片
            b=BitmapFactory.decodeFile(file.getPath());
            picList.add(b);
            //获取文件名
            String houzuiname=file.getName();
            name=houzuiname.substring(houzuiname.lastIndexOf(0)+1,houzuiname.lastIndexOf(".")).toLowerCase();
            picList.add(name);

        }
    }
    // 返回得到的图片列表
    return picList;
}

// 检查扩展名,得到图片格式的文件
private boolean checkIsImageFile(String fName) {
    boolean isImageFile = false;
    // 获取扩展名
    String FileEnd = fName.substring(fName.lastIndexOf(".") + 1,fName.length()).toLowerCase();
    if (FileEnd.equals("jpg") || FileEnd.equals("gif")|| FileEnd.equals("png") || FileEnd.equals("jpeg")|| FileEnd.equals("bmp")) {
        isImageFile = true;
    } else {
        isImageFile = false;
    }
    return isImageFile;
}

/*
这里面我只能显示输入到List的最后一组,请问大佬们怎么修改让TextView能够把第一张到最后一张都显示出来啊
*/

  • 写回答

2条回答

  • fafasj 2017-08-07 09:15
    关注

    Log.i("TAGB", (String) picList.get(position+1));
    Log.i("TAGB", (String) picList.get(1));
    这两句中的第一个在运行时qpp会被强制终止出错,而第二个却没有,position参数是int型为什么会出错

    评论

报告相同问题?

悬赏问题

  • ¥20 删除和修改功能无法调用
  • ¥15 kafka topic 所有分副本数修改
  • ¥15 小程序中fit格式等运动数据文件怎样实现可视化?(包含心率信息))
  • ¥15 如何利用mmdetection3d中的get_flops.py文件计算fcos3d方法的flops?
  • ¥40 串口调试助手打开串口后,keil5的代码就停止了
  • ¥15 电脑最近经常蓝屏,求大家看看哪的问题
  • ¥60 高价有偿求java辅导。工程量较大,价格你定,联系确定辅导后将采纳你的答案。希望能给出完整详细代码,并能解释回答我关于代码的疑问疑问,代码要求如下,联系我会发文档
  • ¥50 C++五子棋AI程序编写
  • ¥30 求安卓设备利用一个typeC接口,同时实现向pc一边投屏一边上传数据的解决方案。
  • ¥15 SQL Server analysis services 服务安装失败