GridView实现加载本地所有图片

来源:互联网 发布:sql select语句例子 编辑:程序博客网 时间:2024/06/06 22:14
public class MainActivity extends Activity {
private GridView gridView;
// 获取所有图片的路径
List<String> imagePath = new ArrayList<String>();


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
gridView = (GridView) findViewById(R.id.gridView1);
String sdpath=Environment.getExternalStorageDirectory()+"/";
getFiles(sdpath);
if(imagePath.size()<1){
return;
}
final MyAdapter adapter = new MyAdapter();
gridView.setAdapter(adapter);
gridView.setOnItemClickListener(new OnItemClickListener() {


@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
imagePath.remove(position);
adapter.notifyDataSetChanged();

}
});
}


// 获取所有图片格式
private static final String[] imageFromSet = new String[] { "jpg", "png",
"gif" };


// 判断是否是图片
private static boolean isImageFile(String path) {
for (String imagePath : imageFromSet) {
if (path.contains(imagePath)) {
return true;
}
}
return false;
}




//遍历指定路径
private void getFiles(String url){
//创建文件对象
File files=new File(url);
File[] file=files.listFiles();
try {
for(File f:file){
if(f.isDirectory()){//如果是目录
getFiles(f.getAbsolutePath());//递归调用
}else{
if(isImageFile(f.getPath())){
imagePath.add(f.getPath());//将图片路径加入到list集合中
}
}
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

class MyAdapter extends BaseAdapter{


@Override
public int getCount() {
// TODO Auto-generated method stub
return imagePath.size();
}


@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return imagePath.get(position);
}


@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}


@Override
public View getView(int position, View convertView, ViewGroup parent) {
ImageView imageView;
if(convertView==null){
imageView=new ImageView(MainActivity.this);
//设置图像的宽和高
imageView.setAdjustViewBounds(true);
imageView.setMaxWidth(500);
imageView.setMaxHeight(400);
imageView.setPadding(5, 5, 5, 5);
}else{
imageView=(ImageView) convertView;
}
Bitmap bitmap = BitmapFactory.decodeFile(imagePath.get(position));
imageView.setImageBitmap(bitmap);
return imageView;
}

}
}
原创粉丝点击