Я хочу показать все изображения, которые хранятся на SD-карте в соответствии с сохраненной папкой. Если в папке 2 изображения, то должно отображаться только два изображения. Предположим, что на SD-карте содержится папка с названием фильма и несколько изображений, а затем, когда я щелкаю папку с фильмом, на ней должны отображаться все пять изображений. Я использую список в левой части экрана, чтобы показать все папки SD-карты, где хранятся изображения.
Мой код:
public class ImageAdapter extends BaseAdapter {
private Context mContext;
private String Path;
String [] imagesFile;
File dirName;
Bitmap bm[];
int count;
public ImageAdapter(Context c) {
mContext = c;
}
public ImageAdapter(Context c, String nAndroids) {
mContext = c;
Path=nAndroids;
dirName=new File(Path+"/");
if(dirName.isDirectory()){
imagesFile=dirName.list();
count=imagesFile.length ;
}
}
public int getCount() {
if(imagesFile!=null){
return count;
}
return 0;
}
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=null;
System.gc();
if( imagesFile!=null && imagesFile.length>0)
{
for(String bitmapFileName : imagesFile)
{
if (convertView == null) { // if it's not recycled, initialize some attributes
imageView = new ImageView(mContext);
imageView.setLayoutParams(new GridView.LayoutParams(100, 100));
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
imageView.setPadding(8, 8, 8, 8);
BitmapFactory.Options options = new BitmapFactory.Options();
options.inSampleSize = 2;
Bitmap bmp = BitmapFactory.decodeFile(dirName.getPath() + "/" + bitmapFileName,options);
Log.e("Images is Decoded in ImageAdapter Class","<<-->>"+bmp);
imageView.setImageBitmap(bmp);
} else {
imageView = (ImageView) convertView;
}
}
}
else
{
if (convertView == null) { // if it's not recycled, initialize some attributes
imageView = new ImageView(mContext);
imageView.setLayoutParams(new GridView.LayoutParams(100, 100));
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
imageView.setPadding(8, 8, 8, 8);
} else {
imageView = (ImageView) convertView;
}
}
return imageView;
}