Hi All,
I am trying to show full image when clicking on one of the thumbnail
of grid view, i am able to view the grid with thumbnails but as soon
as i click on any thumbnail to show it in full screen, handling
onItemClick(), it crashes. below is my complete code, please help
package com.example.HelloGridView;
import android.app.Activity;
import android.os.Bundle;
import android.content.Context;
import android.content.res.Resources;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.drawable.Drawable;
import android.util.AttributeSet;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.Toast;
public class HelloGridView extends Activity{
int current_pos;
private Bitmap[] mTileArray;
private MyView myView;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
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)
{
Toast.makeText(HelloGridView.this, "" + position,
Toast.LENGTH_SHORT).show();
current_pos = position;
myView.invalidate();
}
});
}
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 0;
}
// create a new ImageView for each item referenced by the
Adapter
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(85, 85));
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
imageView.setPadding(8, 8, 8, 8);
} else {
imageView = (ImageView) convertView;
}
imageView.setImageResource(mThumbIds[position]);
return imageView;
}
// references to our images
private Integer[] mThumbIds = {
R.drawable.sample_0, R.drawable.sample_1,
R.drawable.sample_2, R.drawable.sample_0
};
}
public class MyView extends View {
private Bitmap[] mTileArray;
private final Paint mPaint = new Paint();
public MyView(Context context, AttributeSet attrs, int
defStyle) {
super(context, attrs, defStyle);
//TypedArray a = context.obtainStyledAttributes(attrs,
R.styleable.TileView);
// mTileSize = a.getInt(R.styleable.TileView_tileSize, 12);
//a.recycle();
Resources r = this.getContext().getResources();
loadTile(0,
r.getDrawable(R.drawable.sample_0));
loadTile(1, r.getDrawable(R.drawable.sample_1));
loadTile(2, r.getDrawable(R.drawable.sample_2));
loadTile(3, r.getDrawable(R.drawable.sample_0));
}
public MyView(Context context, AttributeSet attrs) {
super(context, attrs);
Resources r = this.getContext().getResources();
loadTile(0,
r.getDrawable(R.drawable.sample_0));
loadTile(1, r.getDrawable(R.drawable.sample_1));
loadTile(2, r.getDrawable(R.drawable.sample_2));
loadTile(3, r.getDrawable(R.drawable.sample_0));
}
public void loadTile(int key, Drawable tile) {
Bitmap bitmap = Bitmap.createBitmap(191, 285,
Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
tile.setBounds(0, 0, 191, 285);
tile.draw(canvas);
mTileArray[key] = bitmap;
}
@Override
public void onDraw(Canvas canvas) {
super.onDraw(canvas);
canvas.drawBitmap(mTileArray[1], 0,0, mPaint);
}
}
}
--
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en