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;
}
}
}
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;
}
}
}
阅读全文
0 0
- GridView实现加载本地所有图片
- GridView 加载本地某个文件夹下的所有图片
- GridView异步加载本地图片缩略图
- 利用LruCache为GridView加载大量本地图片完整示例
- ListView GridView ViewPager 异步 加载网络图片 缓存到本地
- 自定义ImageLoader实现GridView加载图片
- 自定义ImageLoader实现GridView加载图片
- ReactNative Android 实现加载本地图片
- GridView 加载图片 OOM
- GridView加载大量图片
- GridView加载网络图片
- GridView加载图片混乱
- android加载本地图片
- ActionScript3 加载本地图片
- 异步加载本地 图片
- ActionScript3 加载本地图片
- ImageLoader 加载本地图片
- WinForm 加载本地图片
- 数据结构和算法部分
- 设计模式
- 微信小程序开发步骤讲解和实用小技巧
- MySQL查看表占用空间大小(转)
- 微信Redirect_uri参数错误解决方法
- GridView实现加载本地所有图片
- HTTP Status 500
- note_cloud--显示笔记下拉菜单
- R语言实现金融数据的时间序列分析及建模
- ASP.NET之初学MVC
- STL删除指定元素
- C++异常与继承
- chrome控制台调试js
- 震旦adc218网络ip设置方法