知识点

1. 网格视图

2. 读取文件

MainAcitvity

package com.test.gridview;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.GridView;
import android.widget.Toast; public class MainActivity extends AppCompatActivity { @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); GridView gridview = (GridView) findViewById(R.id.gridview);
gridview.setAdapter(new ImageAdapter(this)); gridview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View v,
int position, long id) {
Toast.makeText(MainActivity.this, "" + position,
Toast.LENGTH_SHORT).show();
}
});
} }

ImageAdapter

package com.test.gridview;

import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.ImageView; import java.util.List;
import java.util.Map; /**
* Created by 1 on 2016/4/17.
*/
public class ImageAdapter extends BaseAdapter {
private Context mContext; public ImageAdapter(Context c) {
mContext = c;
} public int getCount() {
return imagePath.size();
} public Object getItem(int position) {
return null;
} public long getItemId(int position) {
return 0;
} // create a new ImageView for each item referenced by the Adapter
public View getView(int position, View convertView, ViewGroup parent) {
ImageView imageView;
if (convertView == null) {
// if it's not recycled, initialize some attributes
imageView = new ImageView(mContext);
imageView.setLayoutParams(new GridView.LayoutParams(85, 85));
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
imageView.setPadding(8, 8, 8, 8);
} else {
imageView = (ImageView) convertView;
} Bitmap bitmap = BitmapFactory.decodeFile(imagePath.get(position).get(FileUtils.IMAGE_PATH));
imageView.setImageBitmap(bitmap);
return imageView;
} private List<Map<String, String>> imagePath = FileUtils.getFiles(FileUtils.SDPATH);
}

FileUtils

package com.test.gridview;

import android.os.Environment;

import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map; /**
* Created by 1 on 2016/4/17.
*/
public class FileUtils { public static String[] imageFormatSet = {"jpg", "png", "gif"}; public static String SDPATH = Environment.getExternalStorageDirectory() + "/00Meeting/"; public static String IMAGE_NAME = "imageName"; public static String IMAGE_PATH = "imagePath"; /**
* 判断是否是图片文件
*
* @param path
* @return
*/
public static boolean isImageFile(String path) {
for (String format : imageFormatSet) { if (path.endsWith(format)) {
return true;
}
}
return false;
} public static List<Map<String, String>> getFiles(String path) { List<Map<String, String>> pathList = new ArrayList<>(); File file = new File(path);
File[] files = file.listFiles();
for (File f : files) {
if (f.isDirectory()) {
getFiles(f.getAbsolutePath());
} else {
if (isImageFile(f.getPath())) {
Map<String, String> map = new HashMap<>();
map.put(FileUtils.IMAGE_NAME, f.getName());
map.put(FileUtils.IMAGE_PATH, f.getPath());
pathList.add(map); }
}
}
return pathList;
}
}

最新文章

  1. quick-cocos2d-x :加入学习
  2. [转]windows 短文件名/短路径名规则
  3. iOS的内购
  4. devstack查看服务日志
  5. Socket通信客户端设计(Java)
  6. Linux(centOS6.5)下SVN的安装、配置及开机启动
  7. XACT_ABORT 用法
  8. Jquery animate的使用方法
  9. UVA 12902 Reverse Polish Notation
  10. C# 7 函数 青歌赛打分 天气预报
  11. Java中的String,StringBuffer,StringBuilder详解与区别
  12. VS2010,原来还有这些快捷键,果断记下来!
  13. iOS 参考 网络书籍
  14. 解决mysql 1032 主从错误
  15. windows日志监控
  16. [HNOI2006]超级英雄
  17. lstm bptt推导
  18. MySQL5.7修改默认密码、随机密码
  19. JavaScript的3种继承方式
  20. Failed to connect socket to &#39;/var/run/libvirt/libvirt-sock&#39;的问题解决

热门文章

  1. boost::serialization 用基类指针转存派生类(错误多多,一波三折)
  2. 基于bootstrap_后台管理
  3. openwrt: firstboot
  4. C++中的getopt的用法
  5. 小心APP应用让你成为“透明人”
  6. 如何解决Windows的端口占用问题?
  7. Get Luffy Out (poj 2723 二分+2-SAT)
  8. G.易彰彪的一张表
  9. date 命令 时间戳到标准格式转换
  10. Linux 高精度定时器hrtimer 使用示例【转】