遍历指定目录下的图片文件 显示在gridview
来源:互联网 发布:佳能软件dpp 4.0 编辑:程序博客网 时间:2024/05/01 09:34
gridview布局
<?xml version="1.0" encoding="utf-8"?> <GridView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/gridview" android:layout_width="fill_parent" android:layout_height="fill_parent" android:columnWidth="90dp" android:numColumns="auto_fit" android:verticalSpacing="10dp" android:horizontalSpacing="10dp" android:stretchMode="columnWidth" android:gravity="center" />
item配件布局
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/root" android:orientation="vertical" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="5dp" > <ImageView android:id="@+id/image" android:layout_width="100dp" android:layout_height="150dp" android:layout_gravity="center" android:scaleType="fitXY" android:padding="4dp" /> <TextView android:id="@+id/title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:gravity="center_horizontal" /> </LinearLayout>
主Activity
package com.su.testgrid3;import android.app.Activity;import android.os.Bundle;import android.os.Environment;import android.view.View;import android.widget.AdapterView;import android.widget.AdapterView.OnItemLongClickListener;import android.widget.GridView;import android.widget.Toast;import android.widget.AdapterView.OnItemClickListener;public class TestGrid3Activity extends Activity {private GridView gridView;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);String[] titles = FileUtil.getImageNames("/mnt/sdcard/k/");String[] imagePaths = new String[titles.length];for (int i = 0; i < titles.length; i++) {imagePaths[i]="/mnt/sdcard/k/"+titles[i];}gridView = (GridView) findViewById(R.id.gridview);PictureAdapter adapter = new PictureAdapter(titles, imagePaths, this);gridView.setAdapter(adapter);gridView.setOnItemClickListener(new OnItemClickListener() {public void onItemClick(AdapterView<?> parent, View v,int position, long id) {Toast.makeText(TestGrid3Activity.this, "你点击了" + (position + 1),Toast.LENGTH_SHORT).show();}});gridView.setOnItemLongClickListener(new OnItemLongClickListener(){public boolean onItemLongClick(AdapterView<?> parent, View v,int position, long id) {Toast.makeText(TestGrid3Activity.this, "你长按了" + (position + 1),Toast.LENGTH_SHORT).show();return true;/* * 这里需要true * 因为:OnItemLongClick事件中:down事件返回值标记此次事 * 件是否为点击事件(返回false,是点击事件;返回true,不记为点击事件), * 而up事件标记此次事件结束时间,也就是判断是否为长按。 */}});}}适配器
// 2012-4-18下午07:46:57package com.su.testgrid3;import java.util.ArrayList;import java.util.List;import android.content.Context;import android.graphics.BitmapFactory;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.ImageView;import android.widget.TextView;//自定义适配器class PictureAdapter extends BaseAdapter {private LayoutInflater inflater;private List<Picture> pictures;public PictureAdapter(String[] titles, String[] images, Context context) {super();pictures = new ArrayList<Picture>();inflater = LayoutInflater.from(context);for (int i = 0; i < images.length; i++) {Picture picture = new Picture(titles[i], images[i]);pictures.add(picture);}}@Overridepublic int getCount() {if (null != pictures) {return pictures.size();} else {return 0;}}@Overridepublic Object getItem(int position) {return pictures.get(position);}@Overridepublic long getItemId(int position) {return position;}@Overridepublic View getView(int position, View convertView, ViewGroup parent) {ViewHolder viewHolder;if (convertView == null) {convertView = inflater.inflate(R.layout.picture_item, null);viewHolder = new ViewHolder();viewHolder.title = (TextView) convertView.findViewById(R.id.title);viewHolder.image = (ImageView) convertView.findViewById(R.id.image);convertView.setTag(viewHolder);} else {viewHolder = (ViewHolder) convertView.getTag();}viewHolder.title.setText(pictures.get(position).getTitle());viewHolder.image.setImageBitmap(BitmapFactory.decodeFile(pictures.get(position).getImageId()));return convertView;}}class ViewHolder {public TextView title;public ImageView image;}
picture的javabean
// 2012-4-18下午07:47:44package com.su.testgrid3;class Picture {private String title;private String imageId;public Picture() {super();}public Picture(String title, String imageId) {super();this.title = title;this.imageId = imageId;}public String getTitle() {return title;}public void setTitle(String title) {this.title = title;}public String getImageId() {return imageId;}public void setImageId(String imageId) {this.imageId = imageId;}}
获取图片文件的名字数组的操作类
// 2012-4-18下午07:49:44 package com.su.testgrid3;import java.io.File;public class FileUtil {public static String[] getImageNames(String folderPath) {File file01 = new File(folderPath);String[] files01 = file01.list();int imageFileNums = 0;for (int i = 0; i < files01.length; i++) {File file02 = new File(folderPath + "/" + files01[i]);if (!file02.isDirectory()) {if (isImageFile(file02.getName())) {imageFileNums++;}}}String[] files02 = new String[imageFileNums];int j = 0;for (int i = 0; i < files01.length; i++) {File file02 = new File(folderPath + "/" + files01[i]);if (!file02.isDirectory()) {if (isImageFile(file02.getName())) {files02[j] = file02.getName();j++;}}}return files02;}private static boolean isImageFile(String fileName) {String fileEnd = fileName.substring(fileName.lastIndexOf(".") + 1,fileName.length());if (fileEnd.equalsIgnoreCase("jpg")) {return true;} else if (fileEnd.equalsIgnoreCase("png")) {return true;} else if (fileEnd.equalsIgnoreCase("bmp")) {return true;} else {return false;}}}
- 遍历指定目录下的图片文件 显示在gridview
- VC 遍历指定目录下的文件
- 遍历指定目录下的所有文件
- 遍历指定目录下指定类型文件的函数
- 遍历指定目录下指定类型文件的方法集锦
- delphi遍历指定目录下指定类型文件的函数
- 遍历指定目录下指定格式的文件
- 转载遍历指定目录下所有指定类型的文件
- 使用QDir遍历指定目录下的指定文件
- 遍历某一指定目录下的文件和目录
- 自动遍历指定目录下的图片代码
- C++实现Linux下遍历指定目录下的文件
- C/C++遍历目录下的文件或指定文件
- C/C++遍历目录下的文件或指定文件
- 遍历指定目录下的所有文件和目录, 以及子目录下的文件和目录
- 遍历目录下的指定扩展名文件的函数
- Java遍历指定的目录下的文件
- 一个遍历指定目录下所有文件的例子
- RTP/AVP
- 让人吃惊的专家们和编辑们啊
- activity跳转之后item标志逻辑错误
- PHP图片验证码的实现
- Android入门:Layout
- 遍历指定目录下的图片文件 显示在gridview
- CentOS 安装多种解码器打造Linux的全能播放器
- 清明節をしのぶ作者トマト文
- Eclipse设置:背景与字体大小和xml文件中字体大小调整
- Linux(FC)下播放rm rmvb mp3 wma 等各种媒体文件的解决方法
- mysql数据文件的导入导出
- [ASP.net教程] 新浪OAuth网站登陆连接,请求access_token时遇到21323 miss client id or secret 的解决方案
- 大二暑期学习计划
- activity横竖屏获取以及判断