知识点

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;
}
}

android 显示目录下图片的更多相关文章

  1. Android 获取SDCard中某个目录下图片

    本文介绍Android开发中如何获取SDCard中某目录下的所有图片并显示出来,下面的我们提供的这个函数是通用的,只要提供路径就可以查询出该目录下所有图片的路径信息,并保存到一个List<Str ...

  2. tree:以树形结构显示目录下的内容

    tree命令 1.命令详解 [功能说明] tree命令的中文意思为“树”,功能是以树形结构列出指定目录下的所有内容包括所有文件.子目录及子目录里的目录和文件. [语法格式] tree [option] ...

  3. ls 显示目录下的内容和文件相关属性信息

    1.命令功能 ls命令是“list directory contents”,显示当前目录下的内容和文件属性. 2.语法格式 ls  [option]  file ls  选项  文件名 3.选项说明 ...

  4. 114、drawable和mipmap 目录下图片的区别

    android 在 API level 17 加入了 mipmap 技术,对 bitmap 图片的渲染支持 mipmap 技术,来提高渲染的速度和质量.mipmap 是一种很早就有的技术了,翻译过来就 ...

  5. res/drawable目录下图片的Uri

    http://liuyun025.iteye.com/blog/1280838 有时候,我们要用到res/drawable目录下的图片Uri,而这个Uri该如何生存呢?下面就是这Uri的生成方法: U ...

  6. tree 数状型结构显示目录下的内容

    1. 命令功能 tree中文意思“树”,以树形结构显示目录内容.. 2. 语法格式 tree  [option]   [directory] tree  选项   目录 3. 使用范例 当最小化安装l ...

  7. 显示目录下的内容--ls

    ls               显示当前目录下的所有文件或者文件夹,但不包括 . 和 .. ls -a                  显示当前目录下的所有文件或者文件夹 ls -l        ...

  8. Android获取res目录下图片的uri

    Uri.parse("android.resource://" + getApplicationContext().getPackageName() + "/" ...

  9. Android显示等宽图片的问题

    安卓开发常遇到一个问题,就是在listView里面,在不知道图片宽高的前提下,另图片布满屏幕(图片宽度等于屏幕宽度,高度自适应).在listView中,只是设置scaleType,imageView. ...

随机推荐

  1. Codeforces 558C Amr and Chemistry

    题意: n个数.每次能够选一个数 让其 *=2 或者 /=2 问至少操作多少次使得全部数相等. 思路: 对于每一个数,计算出这个数能够变成哪些数,以及变成那个数的最小步数,用两个数组保存 cnt[i] ...

  2. python day 13 生成器 以及 推导式

    1.生成器的本质是迭代器 2.生成器函数 def  fn() 函数体 yield fn() g = fn() 此时这个g就是生成器 所以g 是可迭代的 g._ _next_ _ 每执行一次_ _nex ...

  3. 例子:两个表根据productID合并

  4. java序员必备的十大技能

    想成为一名出色的Java程序员么?本文将为大家重点介绍程序员必备的十大技能,成就您的梦想.       1.语法:必须比较熟悉,在写代码的时候IDE的编辑器对某一行报错应该能够根据报错信息知道是什么样 ...

  5. Mongoose Embedded Web Server Library

    https://github.com/cesanta/mongoose http://ltp.ai/docs/ltpserver.html LTP Server在轻量级服务器程序mongoose基础上 ...

  6. java map 装入list

    需要生成多组数据的时候,应将map时候放入循环,否则循环出来会一直覆盖之前的,只能保存一条数据. 具体如下: if (rs.next()) { do { Map<String, String&g ...

  7. POJ1759 Garland —— 二分

    题目链接:http://poj.org/problem?id=1759 Garland Time Limit: 1000MS   Memory Limit: 10000K Total Submissi ...

  8. 一步一步学Silverlight 2系列(32):图形图像综合实例—“功夫之王”剧照播放

    概述 Silverlight 2 Beta 1版本发布了,无论从Runtime还是Tools都给我们带来了很多的惊喜,如支持框架语言Visual Basic, Visual C#, IronRuby, ...

  9. Lucene in action 笔记 term vector——针对特定field建立的词频向量空间,不存!不会!影响搜索,其作用是告诉我们搜索结果是“如何”匹配的,用以提供高亮、计算相似度,在VSM模型中评分计算

    摘自:http://makble.com/what-is-term-vector-in-lucene given a document, find all its terms and the posi ...

  10. 喵哈哈村的魔法考试 Round #1 (Div.2)

    比赛地址:http://qscoj.cn/contest/2/ 都是中文题,这里不在详述题意 A.喵哈哈村的魔法石 分析:暴力求解 #include<iostream> #include& ...