• After 15+ years, we've made a big change: Android Forums is now Early Bird Club. Learn more here.

Apps How to make an image shower larger from thumbnail in android?

Pooveshin

Newbie
Hi All

I Have successfully started reading images back into my android app into a gridview, I however need help. When a user clicks on an image I want it to appear larger from the thumbnail. Any help is much appreciated.

My code for the images to get read :

Code:
public class View_Pictures extends AppCompatActivity {

public class ImageAdapter extends BaseAdapter {

   private Context mContext;
   ArrayList<String> itemList = new ArrayList<String>();

   public ImageAdapter(Context c) {
       mContext = c;
   }

   void add(String path){
       itemList.add(path);
   }

   @Override
   public int getCount() {
       return itemList.size();
   }

   @Override
   public Object getItem(int arg0) {
       // TODO Auto-generated method stub
       return null;
   }

   @Override
   public long getItemId(int position) {
       // TODO Auto-generated method stub
       return 0;
   }

   @Override
   public View getView(int position, View convertView, ViewGroup parent) {
       ImageView imageView;
       if (convertView == null) {  // if it's not recycled, initialize some attributes
           imageView = new ImageView(mContext);
           imageView.setLayoutParams(new GridView.LayoutParams(220, 220));
           imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
           imageView.setPadding(8, 8, 8, 8);
       } else {
           imageView = (ImageView) convertView;
       }

       Bitmap bm = decodeSampledBitmapFromUri(itemList.get(position), 220, 220);

       imageView.setImageBitmap(bm);
       return imageView;
   }

   public Bitmap decodeSampledBitmapFromUri(String path, int reqWidth, int reqHeight) {

       Bitmap bm = null;
       // First decode with inJustDecodeBounds=true to check dimensions
       final BitmapFactory.Options options = new BitmapFactory.Options();
       options.inJustDecodeBounds = true;
       BitmapFactory.decodeFile(path, options);

       // Calculate inSampleSize
       options.inSampleSize = calculateInSampleSize(options, reqWidth, reqHeight);

       // Decode bitmap with inSampleSize set
       options.inJustDecodeBounds = false;
       bm = BitmapFactory.decodeFile(path, options);

       return bm;
   }

   public int calculateInSampleSize(

           BitmapFactory.Options options, int reqWidth, int reqHeight) {
       // Raw height and width of image
       final int height = options.outHeight;
       final int width = options.outWidth;
       int inSampleSize = 1;

       if (height > reqHeight || width > reqWidth) {
           if (width > height) {
               inSampleSize = Math.round((float)height / (float)reqHeight);
           } else {
               inSampleSize = Math.round((float)width / (float)reqWidth);
           }
       }

       return inSampleSize;
   }

}

ImageAdapter myImageAdapter;

@Override
protected void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   setContentView(R.layout.activity_view__pictures);

   GridView gridview = (GridView) findViewById(R.id.gridview);
   myImageAdapter = new ImageAdapter(this);
   gridview.setAdapter(myImageAdapter);

   String ExternalStorageDirectoryPath = Environment
           .getExternalStorageDirectory()
           .getAbsolutePath();

   String targetPath = ExternalStorageDirectoryPath + "/Venns Road Accident";

   Toast.makeText(getApplicationContext(), targetPath, Toast.LENGTH_LONG).show();
   File targetDirector = new File(targetPath);

   File[] files = targetDirector.listFiles();
   for (File file : files){
       myImageAdapter.add(file.getAbsolutePath());
    }
  }
}

Gridview

Code:
<GridView
   android:id="@+id/gridview"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"
   android:layout_below="@id/textView47"
   android:columnWidth="90dp"
   android:numColumns="auto_fit"
   android:verticalSpacing="10dp"
   android:horizontalSpacing="10dp"
   android:stretchMode="columnWidth"
   android:gravity="center"/>
 
Back
Top Bottom