ImageFolderAdapter.java 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. package epson.print.imgsel;
  2. import android.content.Context;
  3. import android.content.res.Resources;
  4. import android.graphics.Bitmap;
  5. import android.view.LayoutInflater;
  6. import android.view.View;
  7. import android.view.ViewGroup;
  8. import android.widget.BaseAdapter;
  9. import android.widget.ImageView;
  10. import android.widget.TextView;
  11. import java.io.File;
  12. import java.util.ArrayList;
  13. import java.util.List;
  14. import epson.print.R;
  15. public class ImageFolderAdapter extends BaseAdapter {
  16. private List<FolderInfoAndThumbnail> mFolderList = new ArrayList();
  17. private LayoutInflater mLayoutInflater;
  18. private Resources mResources;
  19. public long getItemId(int i) {
  20. return 0;
  21. }
  22. public int getCount() {
  23. return mFolderList.size();
  24. }
  25. public Object getItem(int i) {
  26. return mFolderList.get(i);
  27. }
  28. public View getView(int i, View view, ViewGroup viewGroup) {
  29. if (view == null) {
  30. view = mLayoutInflater.inflate(R.layout.listitem_image_folder, viewGroup, false);
  31. }
  32. TextView textView = (TextView) view.findViewById(R.id.folderNameText);
  33. FolderInfoAndThumbnail folderInfoAndThumbnail = mFolderList.get(i);
  34. if (folderInfoAndThumbnail == null) {
  35. return view;
  36. }
  37. textView.setText(new File(folderInfoAndThumbnail.mImageFolderInfo.mCanonicalName).getName());
  38. ((TextView) view.findViewById(R.id.imageVolumeText)).setText(mResources.getString(R.string.memcard_file_num_format, new Object[]{Integer.valueOf(folderInfoAndThumbnail.mImageFolderInfo.getImageCount())}));
  39. ImageView imageView = (ImageView) view.findViewById(R.id.imageView);
  40. if (folderInfoAndThumbnail.mBitmap != null) {
  41. imageView.setImageBitmap(folderInfoAndThumbnail.mBitmap);
  42. } else {
  43. imageView.setImageResource(R.drawable.ic_action_warning);
  44. }
  45. return view;
  46. }
  47. public ImageFolderAdapter(Context context) {
  48. mLayoutInflater = LayoutInflater.from(context);
  49. mResources = context.getResources();
  50. }
  51. public void addItem(ImageFolderInfo imageFolderInfo, Bitmap bitmap) {
  52. mFolderList.add(new FolderInfoAndThumbnail(imageFolderInfo, bitmap));
  53. notifyDataSetChanged();
  54. }
  55. public ImageFolderInfo getFolderInfo(int i) {
  56. return mFolderList.get(i).mImageFolderInfo;
  57. }
  58. public void releaseResource() {
  59. for (FolderInfoAndThumbnail next : mFolderList) {
  60. if (next.mBitmap != null) {
  61. next.mBitmap.recycle();
  62. next.mBitmap = null;
  63. }
  64. }
  65. mFolderList.clear();
  66. }
  67. static class FolderInfoAndThumbnail {
  68. public Bitmap mBitmap;
  69. public ImageFolderInfo mImageFolderInfo;
  70. public FolderInfoAndThumbnail(ImageFolderInfo imageFolderInfo, Bitmap bitmap) {
  71. mImageFolderInfo = imageFolderInfo;
  72. mBitmap = bitmap;
  73. }
  74. }
  75. }