2011-11-30 77 views
0

我已经创建了一个应用程序,其中的图像显示在gridview上,我希望当我点击一个特定的图像时,它会在下一页的全屏幕中显示。以全屏模式显示的图片

我写下了代码,但是当我点击图片时,它正在崩溃。

请有人帮助我

public class GridViewActivity extends Activity {   

    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) { 

       long imageId = (Long) parent.getAdapter().getItem(position); 

       Intent fullScreenIntent = new Intent(v.getContext(),FullScreenImage.class); 

       fullScreenIntent.putExtra("Hello",imageId); 

       startActivity(fullScreenIntent); 

      } 
     }); 


     /* gridview.setOnItemClickListener(new OnItemClickListener() { 
      public void onItemClick(AdapterView<?> parent, View v, int position, long id) { 
       Toast.makeText(GridViewActivity.this, "" + position, Toast.LENGTH_SHORT).show(); 
      } 
     });*/ 
    } 

    public class ImageAdapter extends BaseAdapter { 
     private Context mContext; 

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

     public int getCount() { 
      return images.length; 
     } 

     public Object getItem(int position) { 
      return position; 
     } 

     public long getItemId(int position) { 
      return position; 
     } 

     // 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(images[position]); 
      return imageView; 
     } 

     // references to our images 
     private Integer[] images = { 
       R.drawable.bluehills, R.drawable.sample_3, 
       R.drawable.sample_7, R.drawable.sunset, 
       R.drawable.waterlilies, R.drawable.winter, 

     }; 
    } 
} 
+0

帮助我们来帮助你。将您遇到的代码与堆栈跟踪一起发布。否则,我们无法帮助。 – shanet

+0

发布一些实施代码 – mH16

+1

粘贴FullScreenImage.class代码 – Pratik

回答

0

请试试这个代码

package com.image; 

import android.app.Activity; 
import android.content.Context; 
import android.content.res.TypedArray; 
import android.os.Bundle; 
import android.view.View; 
import android.view.ViewGroup; 
import android.view.WindowManager; 
import android.widget.AdapterView; 
import android.widget.BaseAdapter; 
import android.widget.Gallery; 
import android.widget.ImageView; 
import android.widget.Toast; 
import android.widget.AdapterView.OnItemClickListener; 

public class ImageActivity extends Activity { 
/** Called when the activity is first created. */ 
Integer[] mImageIds = { R.drawable.a, R.drawable.abc, 
     R.drawable.fd, R.drawable.ft, R.drawable.gh, R.drawable.nat 

}; 
ImageView im; 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    Gallery g = (Gallery) findViewById(R.id.gallery1); 
    im = (ImageView) findViewById(R.id.imageView1); 


    g.setAdapter(new ImageAdapter(this)); 

    getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); 
    g.setOnItemClickListener(new OnItemClickListener() { 
     public void onItemClick(AdapterView<?> parent, View v, int position,long id) { 
      Toast.makeText(ImageActivity.this, "" + position,Toast.LENGTH_SHORT).show(); 
      im.setImageResource(mImageIds[position]);        
     } 
    });  
} 

public class ImageAdapter extends BaseAdapter { 
    int mGalleryItemBackground; 
    private Context mContext; 

    public ImageAdapter(Context c) { 
     mContext = c; 
     TypedArray a = obtainStyledAttributes(R.styleable.HelloGallery); 
     mGalleryItemBackground = a.getResourceId(R.styleable.HelloGallery_android_galleryItemBackground, 0); 
     a.recycle(); 
    } 

    public int getCount() { 
     return mImageIds.length; 
    } 

    public Object getItem(int position) { 
     return position; 
    } 

    public long getItemId(int position) { 
     return position; 
    } 

    public View getView(int position, View convertView, ViewGroup parent) { 
     // TODO Auto-generated method stub 
     ImageView i = new ImageView(mContext); 
     i.setImageResource(mImageIds[position]); 
     i.setLayoutParams(new Gallery.LayoutParams(150, 100)); 
     i.setScaleType(ImageView.ScaleType.FIT_XY); 
     i.setBackgroundResource(mGalleryItemBackground); 
     i.bringToFront(); 
     return i; 
    } 
} 
} 
+0

谢谢,但它没有工作,我在这里使用GridView不想使用gallaery – Androo

相关问题