关键代码一个adapter
package com.su.houses.utils;
import android.content.Context;
import android.content.res.TypedArray;
import android.net.Uri;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Gallery;
import android.widget.ImageView;
import com.su.houses.R;
public class ImageAdapter extends BaseAdapter {
private Context mContext;
public String picpath;
private String[] myImageNames;
public ImageAdapter(Context c, String path) {
mContext = c;
picpath = path;
myImageNames = FileUtil.getImageNames(picpath);
}
public int getCount() {
return myImageNames.length;
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return position;
}
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
public View getView(int position, View convertView, ViewGroup parent) {
ImageView imageView = new ImageView(mContext);
imageView.setImageURI(Uri.parse(picpath + "/" + myImageNames[position]));
imageView.setLayoutParams(new Gallery.LayoutParams(800, 600));
imageView.setScaleType(ImageView.ScaleType.FIT_CENTER);
return imageView;
}
}
然后其中的一些方法
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;
}
}
然后在实例化adapter在界面的gallery显示
Gallery g = (Gallery) findViewById(R.id.house_gallery);
g.setAdapter(new ImageAdapter(this,"/mnt/sdcard/k/a/"));
也可以添加listener
g.setOnItemSelectedListener(new OnItemSelectedListener()
{
// 选择图片的事件
public void onItemSelected(AdapterView<?> arg0, View arg1, int position, long id)
{
// 获取当前图片文件名
currentImageName = myImageNames[position];
// 获取当前图片路径
currentImagePath = currentFolderPath + "/" + currentImageName;
// 设置imageSwitcher的显示图片
}
public void onNothingSelected(AdapterView<?> arg0)
{
// TODO Auto-generated method stub
}