ImageFolderAdapter.java 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  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 epson.print.R;
  12. import java.io.File;
  13. import java.util.ArrayList;
  14. import java.util.List;
  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 this.mFolderList.size();
  24. }
  25. public Object getItem(int i) {
  26. return this.mFolderList.get(i);
  27. }
  28. public View getView(int i, View view, ViewGroup viewGroup) {
  29. if (view == null) {
  30. view = this.mLayoutInflater.inflate(R.layout.listitem_image_folder, viewGroup, false);
  31. }
  32. TextView textView = (TextView) view.findViewById(R.id.folderNameText);
  33. FolderInfoAndThumbnail folderInfoAndThumbnail = this.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(this.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. this.mLayoutInflater = LayoutInflater.from(context);
  49. this.mResources = context.getResources();
  50. }
  51. public void addItem(ImageFolderInfo imageFolderInfo, Bitmap bitmap) {
  52. this.mFolderList.add(new FolderInfoAndThumbnail(imageFolderInfo, bitmap));
  53. notifyDataSetChanged();
  54. }
  55. public ImageFolderInfo getFolderInfo(int i) {
  56. return this.mFolderList.get(i).mImageFolderInfo;
  57. }
  58. public void releaseResource() {
  59. for (FolderInfoAndThumbnail next : this.mFolderList) {
  60. if (next.mBitmap != null) {
  61. next.mBitmap.recycle();
  62. next.mBitmap = null;
  63. }
  64. }
  65. this.mFolderList.clear();
  66. }
  67. static class FolderInfoAndThumbnail {
  68. public Bitmap mBitmap;
  69. public ImageFolderInfo mImageFolderInfo;
  70. public FolderInfoAndThumbnail(ImageFolderInfo imageFolderInfo, Bitmap bitmap) {
  71. this.mImageFolderInfo = imageFolderInfo;
  72. this.mBitmap = bitmap;
  73. }
  74. }
  75. }