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能够把第一张到最后一张都显示出来啊
*/