AltViewImageAdapter.java 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151
  1. package com.epson.memcardacc;
  2. import android.content.Context;
  3. import android.graphics.Bitmap;
  4. import android.graphics.BitmapFactory;
  5. import android.graphics.drawable.Drawable;
  6. import android.view.View;
  7. import android.view.ViewGroup;
  8. import android.widget.AbsListView;
  9. import android.widget.BaseAdapter;
  10. import android.widget.ImageView;
  11. import android.widget.RelativeLayout;
  12. import epson.print.CommonDefine;
  13. import epson.print.ImageItem;
  14. import epson.print.Util.EPLog;
  15. import java.util.ArrayList;
  16. import java.util.List;
  17. public class AltViewImageAdapter extends BaseAdapter implements CommonDefine {
  18. private static final String TAG = "ViewImageAdapter";
  19. int itmH;
  20. int itmW;
  21. private final Context mContext;
  22. private List<ImageItem> mImageItemList = new ArrayList();
  23. Bitmap mSelectPictureBitmap = null;
  24. public long getItemId(int i) {
  25. return (long) i;
  26. }
  27. public AltViewImageAdapter(Context context) {
  28. mContext = context;
  29. BitmapFactory.Options options = new BitmapFactory.Options();
  30. options.inPurgeable = true;
  31. options.inScaled = false;
  32. try {
  33. mSelectPictureBitmap = BitmapFactory.decodeResource(mContext.getResources(), R.drawable.select_picture, options);
  34. } catch (OutOfMemoryError e) {
  35. EPLog.e(TAG, "BitmapFactory.decodeResource Error " + e.getMessage());
  36. }
  37. }
  38. public void setImageSize(int i, int i2) {
  39. itmW = i;
  40. itmH = i2;
  41. }
  42. public View getView(int i, View view, ViewGroup viewGroup) {
  43. RelativeLayout relativeLayout;
  44. ImageItem imageItem;
  45. if (view == null) {
  46. relativeLayout = new RelativeLayout(mContext);
  47. relativeLayout.setLayoutParams(new AbsListView.LayoutParams(this.itmW, itmH));
  48. relativeLayout.setGravity(17);
  49. } else {
  50. relativeLayout = (RelativeLayout) view;
  51. }
  52. ImageView imageView = (ImageView) relativeLayout.getChildAt(0);
  53. if (imageView == null) {
  54. imageView = new ImageView(mContext);
  55. imageView.setLayoutParams(new ViewGroup.LayoutParams(-1, -1));
  56. imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
  57. relativeLayout.addView(imageView, 0);
  58. }
  59. if (mImageItemList.size() < 0 || mImageItemList.size() <= i) {
  60. imageItem = null;
  61. } else {
  62. try {
  63. imageItem = mImageItemList.get(i);
  64. } catch (NullPointerException e) {
  65. EPLog.v("null pointer Exception", "line 46 <> View Image Adapter");
  66. e.printStackTrace();
  67. return relativeLayout;
  68. }
  69. }
  70. if (imageItem == null) {
  71. return relativeLayout;
  72. }
  73. try {
  74. if (imageItem.getBitmap() != null) {
  75. imageView.setImageBitmap(imageItem.getBitmap());
  76. } else {
  77. imageView.setImageBitmap((Bitmap) null);
  78. imageView.setBackgroundColor(-3355444);
  79. EPLog.v("null", "bitmap is null");
  80. }
  81. } catch (NullPointerException e2) {
  82. EPLog.v("null pointer Exception", "line 61 <> View Image Adapter");
  83. e2.printStackTrace();
  84. }
  85. try {
  86. ImageView imageView2 = (ImageView) relativeLayout.getChildAt(1);
  87. if (imageItem.getSelected() != 0) {
  88. if (imageView2 == null) {
  89. ImageView imageView3 = new ImageView(mContext);
  90. try {
  91. imageView3.setLayoutParams(new ViewGroup.LayoutParams(-1, -1));
  92. imageView3.setScaleType(ImageView.ScaleType.FIT_XY);
  93. imageView3.setImageDrawable((Drawable) null);
  94. imageView3.setBackground((Drawable) null);
  95. imageView3.setImageBitmap(mSelectPictureBitmap);
  96. } catch (OutOfMemoryError e3) {
  97. EPLog.e(TAG, "setImageBitmap Error" + e3.getMessage());
  98. System.runFinalization();
  99. System.gc();
  100. }
  101. relativeLayout.addView(imageView3, 1);
  102. } else {
  103. imageView2.setVisibility(View.VISIBLE);
  104. }
  105. } else if (imageView2 != null) {
  106. imageView2.setVisibility(4);
  107. }
  108. } catch (NullPointerException e4) {
  109. EPLog.v("null pointer Exception", "line 73 <> View Image Adapter");
  110. e4.printStackTrace();
  111. }
  112. return relativeLayout;
  113. }
  114. public int getCount() {
  115. return mImageItemList.size();
  116. }
  117. public Object getItem(int i) {
  118. return mImageItemList.get(i);
  119. }
  120. public ImageItem getImageItem(int i) {
  121. return mImageItemList.get(i);
  122. }
  123. public void add(ImageItem imageItem) {
  124. mImageItemList.add(imageItem);
  125. }
  126. public void clearImageItem() {
  127. mImageItemList.clear();
  128. }
  129. public void recycleBitmap() {
  130. for (ImageItem bitmap : mImageItemList) {
  131. Bitmap bitmap2 = bitmap.getBitmap();
  132. if (bitmap2 != null) {
  133. bitmap2.recycle();
  134. }
  135. }
  136. }
  137. }