This is a solution for viewing images with a grid view of image resources from which you can select an image and display it as a single image. In this single image view, which is executed using PictureViewer.java, you can view snapshots of resources using the left and right buttons. You can also return to the grid view, which is executed using HelloGridViewActivity.java. ImageAdapter.java is used to define resources and grid presentation methods. Hope this helps:
HelloGridViewActivity.java:
package com.example.hellogridview; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.GridView; public class HelloGridViewActivity extends Activity { private long prev=0,next= 0; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); final GridView gridview = (GridView) findViewById(R.id.gridview); gridview.setAdapter(new ImageAdapter(this)); gridview.setOnItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView<?> parent, View v, int position, long id) { prev = ImageAdapter.getPrevItemId(position); next = ImageAdapter.getNextItemId(position); showImage(gridview.getAdapter().getItemId(position),position); } }); } private void showImage(long id, int pos){ Intent pictureViewer = new Intent(this, PictureViewer.class); pictureViewer.putExtra("pictureId",id ); pictureViewer.putExtra("picturePosition", pos); pictureViewer.putExtra("picturePrevId", prev); pictureViewer.putExtra("pictureNextId", next); startActivityForResult(pictureViewer,0); } }
ImageAdapter.java:
package com.example.hellogridview; import android.content.Context; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.GridView; import android.widget.ImageView; public class ImageAdapter extends BaseAdapter { private Context mContext; public ImageAdapter(Context c) { mContext = c; } public int getCount() { return mThumbIds.length; } public Object getItem(int position) { return null; } public long getItemId(int position) { return mThumbIds[position]; } public static long getPrevItemId(int position) { if(--position<0) position = 21; return mThumbIds[position]; } public static long getNextItemId(int position) { if(++position>21) position = 0; return mThumbIds[position]; }
PictureViewer.java:
package com.example.hellogridview; import android.app.Activity; import android.content.Intent; import android.graphics.drawable.Drawable; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.ImageView; public class PictureViewer extends Activity { long picItem,picPrevItem,picNextItem; int picPosition; private ImageView m_vwImage; public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.picture_layout);
}
HelloGridView greeting:
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.hellogridview" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" /> <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" > <activity android:name=".HelloGridViewActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".PictureViewer" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </activity> </application> </manifest>
Nemanja vuckovic
source share