android 显示目录下图片
知识点
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 显示目录下图片的更多相关文章
- Android 获取SDCard中某个目录下图片
本文介绍Android开发中如何获取SDCard中某目录下的所有图片并显示出来,下面的我们提供的这个函数是通用的,只要提供路径就可以查询出该目录下所有图片的路径信息,并保存到一个List<Str ...
- tree:以树形结构显示目录下的内容
tree命令 1.命令详解 [功能说明] tree命令的中文意思为“树”,功能是以树形结构列出指定目录下的所有内容包括所有文件.子目录及子目录里的目录和文件. [语法格式] tree [option] ...
- ls 显示目录下的内容和文件相关属性信息
1.命令功能 ls命令是“list directory contents”,显示当前目录下的内容和文件属性. 2.语法格式 ls [option] file ls 选项 文件名 3.选项说明 ...
- 114、drawable和mipmap 目录下图片的区别
android 在 API level 17 加入了 mipmap 技术,对 bitmap 图片的渲染支持 mipmap 技术,来提高渲染的速度和质量.mipmap 是一种很早就有的技术了,翻译过来就 ...
- res/drawable目录下图片的Uri
http://liuyun025.iteye.com/blog/1280838 有时候,我们要用到res/drawable目录下的图片Uri,而这个Uri该如何生存呢?下面就是这Uri的生成方法: U ...
- tree 数状型结构显示目录下的内容
1. 命令功能 tree中文意思“树”,以树形结构显示目录内容.. 2. 语法格式 tree [option] [directory] tree 选项 目录 3. 使用范例 当最小化安装l ...
- 显示目录下的内容--ls
ls 显示当前目录下的所有文件或者文件夹,但不包括 . 和 .. ls -a 显示当前目录下的所有文件或者文件夹 ls -l ...
- Android获取res目录下图片的uri
Uri.parse("android.resource://" + getApplicationContext().getPackageName() + "/" ...
- Android显示等宽图片的问题
安卓开发常遇到一个问题,就是在listView里面,在不知道图片宽高的前提下,另图片布满屏幕(图片宽度等于屏幕宽度,高度自适应).在listView中,只是设置scaleType,imageView. ...
随机推荐
- WebService CXF Spring
web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi=" ...
- Posix消息队列相关函数
Posix消息队列(message queue) IPC函数中常用的参数取值: 打开或创建POSIX IPC对象所用的各种oflag常值o_RDONLY 只读O_WRONLY 只写O_RDWD ...
- OpenGL之路(五)制作旋转飞机模型
#include <gl/glut.h> #include <gl/GLU.h> #include <gl/GL.h> #pragma comment(lib, & ...
- poj 1015 Jury Compromise(背包+方案输出)
\(Jury Compromise\) \(solution:\) 这道题很有意思,它的状态设得很...奇怪.但是它的数据范围实在是太暴露了.虽然当时还是想了好久好久,出题人设了几个限制(首先要两个的 ...
- (28)java web的hibernate使用
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,hibernate可以自动生成SQL语句,自 ...
- iOS中城市定位功能的实现
引入框架:CoreLocation .h文件 引入CoreLocation/CoreLocation.h @interface WeatherViewController :UIViewControl ...
- Codility经典算法题之九:MissingInteger
Task description: This is a demo task. Write a function: that, given an array A of N integers, retur ...
- ulink函数的使用【学习笔记】
#include "apue.h" #include <fcntl.h> int main(void) { ) err_sys("open error&quo ...
- 项目中Redis分库
Redis中有16个库 默认第0个库 配置库的设置: 不同的库 key可以重复哈 公司的多个不同分布式项目,但是只有一个redis时候,以项目方式区分不同的库 每个项目连接相同 但是库不同
- iOS NSString拼接字符串
NSString* str_C; // 结果字符串NSString* str_A, str_B; //已存在的字符串,需要将str_A和str_B连接起来 //方法1 str_C = [NSStrin ...