Index: ../trunk-jpl/src/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/GalleryAdapter.java =================================================================== --- ../trunk-jpl/src/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/GalleryAdapter.java (revision 15012) +++ ../trunk-jpl/src/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/GalleryAdapter.java (revision 15013) @@ -3,7 +3,6 @@ import java.util.List; import android.app.Activity; -import android.graphics.drawable.Drawable; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; @@ -16,17 +15,17 @@ private static ImageView imageView; - private List plotsImages; - + + private List plotsImages; private static ViewHolder holder; + + public GalleryAdapter(Activity context, List plotsImages) + { + this.context = context; + this.plotsImages = plotsImages; + } - public GalleryAdapter(Activity context, List plotsImages) { - this.context = context; - this.plotsImages = plotsImages; - - } - @Override public int getCount() { return plotsImages.size(); @@ -64,8 +63,8 @@ holder = (ViewHolder) convertView.getTag(); } - holder.imageView.setImageDrawable(plotsImages.get(position)); - + + holder.imageView.setImageBitmap(ImageList.getImageList().get(position)); holder.imageView.setScaleType(ImageView.ScaleType.FIT_XY); holder.imageView.setLayoutParams(new Gallery.LayoutParams(150, 90)); Index: ../trunk-jpl/src/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/MenuPage.java =================================================================== --- ../trunk-jpl/src/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/MenuPage.java (revision 15012) +++ ../trunk-jpl/src/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/MenuPage.java (revision 15013) @@ -12,7 +12,7 @@ public class MenuPage extends Activity { ISSM issm = new ISSM(); - GalleryImage gallery = new GalleryImage(); + //GalleryImage gallery = new GalleryImage(); private String issmFolder; //------------------------------------------------------------------------ public void onCreate(Bundle icicle) Index: ../trunk-jpl/src/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/GalleryImage.java =================================================================== --- ../trunk-jpl/src/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/GalleryImage.java (revision 15012) +++ ../trunk-jpl/src/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/GalleryImage.java (revision 15013) @@ -5,8 +5,6 @@ import android.app.Activity; import android.content.Intent; import android.graphics.Bitmap; -import android.graphics.drawable.BitmapDrawable; -import android.graphics.drawable.Drawable; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; @@ -33,7 +31,8 @@ private int selectedImagePosition = 0; - private List drawables; + //private List drawables; + private List drawables; private GalleryAdapter galImageAdapter; @@ -184,19 +183,23 @@ private void getDrawablesList() { - drawables = new ArrayList(); - + drawables = new ArrayList(); + int resID; for (int i = 0; i < 17; i++) { - drawables.add(getResources().getDrawable(getResources().getIdentifier("image"+i, "drawable", getPackageName()))); + resID=getResources().getIdentifier("image"+i, "drawable", getPackageName()); + drawables.add(resID); + } - } private void setSelectedImage(int selectedImagePosition) { - - BitmapDrawable bd = (BitmapDrawable) drawables.get(selectedImagePosition); - Bitmap b = Bitmap.createScaledBitmap(bd.getBitmap(), (int) (bd.getIntrinsicHeight() * 0.9), (int) (bd.getIntrinsicWidth() * 0.7), false); + + int width= getResources().getDisplayMetrics().widthPixels; + int height= getResources().getDisplayMetrics().heightPixels; + Bitmap b; + b = ImageResizer.decodeSampledBitmapFromResource(getResources(), drawables.get(selectedImagePosition), width, height); + b = Bitmap.createScaledBitmap(b, width, height, true); selectedImageView.setImageBitmap(b); selectedImageView.setScaleType(ScaleType.FIT_XY); selectedTextView.setText(description.getDescription(selectedImagePosition )); Index: ../trunk-jpl/src/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/ColorBar.java =================================================================== --- ../trunk-jpl/src/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/ColorBar.java (revision 15012) +++ ../trunk-jpl/src/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/ColorBar.java (revision 15013) @@ -1,13 +1,10 @@ package gov.nasa.jpl.issm; -import java.text.DecimalFormat; - import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.util.AttributeSet; -import android.view.MotionEvent; import android.view.View; ///////////////////////////////////////////////////////////// public class ColorBar extends View @@ -18,7 +15,7 @@ private int width = 30; private int start_x = 10; private int start_y = 10; - private int end_y = 0; + //private int end_y = 0; boolean touch; final int MAX_SCALING =255; double [][] colorBuffer; @@ -75,7 +72,7 @@ } y+=3; } - end_y = y; + //end_y = y; } //---------------------------------------------------------------- /*allow user to move color bar around Index: ../trunk-jpl/src/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/ISSM.java =================================================================== --- ../trunk-jpl/src/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/ISSM.java (revision 15012) +++ ../trunk-jpl/src/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/ISSM.java (revision 15013) @@ -8,7 +8,6 @@ import android.os.Bundle; import android.app.Activity; import android.app.ProgressDialog; -import android.graphics.Matrix; import android.util.DisplayMetrics; import android.view.GestureDetector; import android.view.Gravity; Index: ../trunk-jpl/src/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/ISSMAPP.java =================================================================== --- ../trunk-jpl/src/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/ISSMAPP.java (revision 15012) +++ ../trunk-jpl/src/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/ISSMAPP.java (revision 15013) @@ -6,6 +6,7 @@ import java.io.InputStream; import java.io.OutputStream; import android.app.Activity; +import android.app.ProgressDialog; import android.os.AsyncTask; import android.os.Bundle; import android.os.Environment; @@ -21,11 +22,12 @@ /////////////////////////////////////////////////////////////////////////// public class ISSMAPP extends Activity { - MenuPage mp = new MenuPage(); + ImageList imageList; private static final String PREFERENCE_FIRST_RUN = null; private String extStorageDirectory; private String issmFolder; SharedPreferences settings; + private ProgressDialog progressDialog; //------------------------------------------------------------------------ public void onCreate(Bundle icicle) { @@ -35,7 +37,7 @@ boolean firstrun = settings.getBoolean(PREFERENCE_FIRST_RUN, true); extStorageDirectory = Environment.getExternalStorageDirectory().toString(); issmFolder = extStorageDirectory + "/ISSM/input_files/"; - + imageList = new ImageList(this); new CopyDataTask().execute(firstrun); } //------------------------------------------------------------------------------------------- @@ -46,13 +48,7 @@ @Override protected Boolean doInBackground(Boolean... target) { - StartAnimations(); - try { - Thread.sleep(3000); - } catch (InterruptedException e1) { - // TODO Auto-generated catch block - e1.printStackTrace(); - } + imageList.decodeAndResizeImage(); //not sure why, but target[0] can be true on install! more to be done. //if(target[0] = false) //{ @@ -65,8 +61,18 @@ //} return true; } + @Override + protected void onPreExecute() + { + progressDialog = new ProgressDialog(ISSMAPP.this); + progressDialog.setMessage("Loading Data"); + progressDialog.setIndeterminate(true); + progressDialog.setCancelable(false); + progressDialog.show(); + } protected void onPostExecute(Boolean result) { + progressDialog.dismiss(); Intent i = new Intent(ISSMAPP.this, MenuPage.class); i.putExtra("pathToFile", issmFolder); startActivity(i); @@ -77,14 +83,12 @@ { if (android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED)) { - System.out.println(issmFolder); File txtDirectory = new File(issmFolder); // Check and create directory in SDcard if(!txtDirectory.exists()) { txtDirectory.mkdirs(); - System.out.println("making directory"); } CopyAssets(); // Then run the method to copy the file. @@ -126,7 +130,6 @@ Log.e("tag", e.getMessage()); } } - System.out.println("Done"); } //---------------------------------------------------------------------------- private void copyFile(InputStream in, OutputStream out) throws IOException Index: ../trunk-jpl/src/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/ImageList.java =================================================================== --- ../trunk-jpl/src/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/ImageList.java (revision 0) +++ ../trunk-jpl/src/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/ImageList.java (revision 15013) @@ -0,0 +1,34 @@ +package gov.nasa.jpl.issm; + +import java.util.ArrayList; + +import android.content.Context; +import android.graphics.Bitmap; + +public class ImageList +{ + private static ArrayList imageList; + private Context context; + final int nImage = 17; +//---------------------------------------------------------- + public ImageList(Context context) + { + imageList = new ArrayList (); + this.context = context; + } +//---------------------------------------------------------- + public void decodeAndResizeImage() + { + int resID; + for(int i = 0 ; i < nImage; i++) + { + resID=context.getResources().getIdentifier("image"+i, "drawable", context.getPackageName()); + imageList.add(ImageResizer.decodeSampledBitmapFromResource(context.getResources(), resID , 50, 50)); + } + } +//---------------------------------------------------------- + public static ArrayList getImageList() + { + return imageList; + } +} Index: ../trunk-jpl/src/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/ZoomImageView.java =================================================================== --- ../trunk-jpl/src/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/ZoomImageView.java (revision 15012) +++ ../trunk-jpl/src/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/ZoomImageView.java (revision 15013) @@ -16,7 +16,9 @@ package gov.nasa.jpl.issm; import android.content.Context; +import android.graphics.Bitmap; import android.graphics.Canvas; +import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.Drawable; import android.util.AttributeSet; import android.view.MotionEvent; @@ -26,11 +28,10 @@ public class ZoomImageView extends View { private static final int INVALID_POINTER_ID = -1; - + private Bitmap b; private Drawable mIcon; private float mPosX; private float mPosY; - private float mLastTouchX; private float mLastTouchY; private int mActivePointerId = INVALID_POINTER_ID; @@ -38,6 +39,7 @@ private ScaleGestureDetector mScaleDetector; private float mScaleFactor = 1.f; + public ZoomImageView(Context context, int i) { this(context, null, 0, i); } @@ -46,13 +48,19 @@ this(context, attrs, 0 ,i); } + public ZoomImageView(Context context, AttributeSet attrs, int defStyle, int i) { super(context, attrs, defStyle); - mIcon = getResources().getDrawable(getResources().getIdentifier("image"+i, "drawable", context.getPackageName())); + int resID2 = getResources().getIdentifier("image"+i, "drawable", context.getPackageName()); + //mIcon = getResources().getDrawable(resID); int width= context.getResources().getDisplayMetrics().widthPixels; int height= context.getResources().getDisplayMetrics().heightPixels; + + + b = ImageResizer.decodeSampledBitmapFromResource(getResources(), resID2, width, height); + b = Bitmap.createScaledBitmap(b, width, height, true); + mIcon = new BitmapDrawable(getResources(), b); mIcon.setBounds(0, 0, width, height); - mScaleDetector = new ScaleGestureDetector(context, new ScaleListener()); } @@ -133,6 +141,7 @@ canvas.translate(mPosX, mPosY); canvas.scale(mScaleFactor, mScaleFactor); mIcon.draw(canvas); + // canvas.drawBitmap(b,0,0,null); canvas.restore(); } Index: ../trunk-jpl/src/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/ImageResizer.java =================================================================== --- ../trunk-jpl/src/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/ImageResizer.java (revision 0) +++ ../trunk-jpl/src/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/ImageResizer.java (revision 15013) @@ -0,0 +1,49 @@ +package gov.nasa.jpl.issm; + +import android.content.res.Resources; +import android.graphics.Bitmap; +import android.graphics.BitmapFactory; + +public class ImageResizer { + + public static Bitmap decodeSampledBitmapFromResource(Resources res, int resId, + int reqWidth, int reqHeight) { + + // First decode with inJustDecodeBounds=true to check dimensions + final BitmapFactory.Options options = new BitmapFactory.Options(); + options.inJustDecodeBounds = true; + BitmapFactory.decodeResource(res, resId, options); + + // Calculate inSampleSize + options.inSampleSize = calculateInSampleSize(options, reqWidth, reqHeight); + + // Decode bitmap with inSampleSize set + options.inJustDecodeBounds = false; + return BitmapFactory.decodeResource(res, resId, options); + } + + public static int calculateInSampleSize( + BitmapFactory.Options options, int reqWidth, int reqHeight) + { + // Raw height and width of image + int height = options.outHeight; + int width = options.outWidth; + int inSampleSize = 1; + + if (height > reqHeight || width > reqWidth) { + + // Calculate ratios of height and width to requested height and width + final int heightRatio = Math.round((float) height / (float) reqHeight); + final int widthRatio = Math.round((float) width / (float) reqWidth); + + // Choose the smallest ratio as inSampleSize value, this will guarantee + // a final image with both dimensions larger than or equal to the + // requested height and width. + inSampleSize = heightRatio > widthRatio ? heightRatio : widthRatio; + } + + return inSampleSize; + + } + +} Index: ../trunk-jpl/src/mobile/android/ISSM_APP/res/drawable/image0.png =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Index: ../trunk-jpl/src/mobile/android/ISSM_APP/res/drawable/image1.png =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Index: ../trunk-jpl/src/mobile/android/ISSM_APP/res/drawable/image2.png =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Index: ../trunk-jpl/src/mobile/android/ISSM_APP/res/drawable/image3.png =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Index: ../trunk-jpl/src/mobile/android/ISSM_APP/res/drawable/image4.png =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Index: ../trunk-jpl/src/mobile/android/ISSM_APP/res/drawable/image5.png =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Index: ../trunk-jpl/src/mobile/android/ISSM_APP/res/drawable/image6.png =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Index: ../trunk-jpl/src/mobile/android/ISSM_APP/res/drawable/image7.png =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Index: ../trunk-jpl/src/mobile/android/ISSM_APP/res/drawable/image8.png =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Index: ../trunk-jpl/src/mobile/android/ISSM_APP/res/drawable/image9.png =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Index: ../trunk-jpl/src/mobile/android/ISSM_APP/res/drawable/image10.png =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Index: ../trunk-jpl/src/mobile/android/ISSM_APP/res/drawable/image11.png =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Index: ../trunk-jpl/src/mobile/android/ISSM_APP/res/drawable/image12.png =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Index: ../trunk-jpl/src/mobile/android/ISSM_APP/res/drawable/image13.png =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Index: ../trunk-jpl/src/mobile/android/ISSM_APP/res/drawable/image14.png =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Index: ../trunk-jpl/src/mobile/android/ISSM_APP/res/drawable/image15.png =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Index: ../trunk-jpl/src/mobile/android/ISSM_APP/res/drawable/image16.png =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Index: ../trunk-jpl/src/mobile/android/ISSM_APP/res/drawable/image17.png =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Index: ../trunk-jpl/src/mobile/android/ISSM_APP/res/anim/translate.xml =================================================================== --- ../trunk-jpl/src/mobile/android/ISSM_APP/res/anim/translate.xml (revision 15012) +++ ../trunk-jpl/src/mobile/android/ISSM_APP/res/anim/translate.xml (revision 15013) @@ -8,7 +8,7 @@ android:toXDelta="0%" android:fromYDelta="200%" android:toYDelta="0%" - android:duration="2000" + android:duration="3000" android:zAdjustment="top" /> \ No newline at end of file