点击监听网格视图时显示图像ANdroid

问题描述:

我在我的android应用程序中有网格视图,我希望当我点击网格视图中的一个图像时,它会在全视图中显示该图像。点击监听网格视图时显示图像ANdroid

当前它显示图片点击它时的位置。

这里是代码

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

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

这里是ImageAdapter

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; 
     } 
     Picasso.with(mContext).load(mThumbIds[position]).into(imageView); 
     //imageView.setImageResource(Integer.parseInt(mThumbIds[position])); 
     return imageView; 
    } 


    public String[] mThumbIds = new String[]{ 
      "http://192.168.1.4/comic_app/index.php?id=1", 
      "http://192.168.1.4/comic_app/index.php?id=67", 
      "http://192.168.1.4/comic_app/index.php?id=4", 
      "http://192.168.1.4/comic_app/index.php?id=89", 
      "http://192.168.1.4/comic_app/index.php?id=98", 
      "http://192.168.1.4/comic_app/index.php?id=23", 
      "http://192.168.1.4/comic_app/index.php?id=45", 
    }; 
} 

如何显示在该图像的点击图片。

在此先感谢。

+0

http://android-er.blogspot.com/2012/12/implement-onitemclicklistener-for.html - 本教程将帮助你。 –

我已经解决了我的问题,我只是更换了这条线

imageView.setImageResource(imageAdapter.mThumbIds[position]); 

与此

Picasso.with(imageAdapter.mContext).load(imageAdapter.mThumbIds[position]).into(imageView); 

现在,做工精细....

简称链接告诉你如何可以全屏幕显示在GridView图片点击GridView的图像后

http://www.androidhive.info/2012/02/android-gridview-layout-tutorial/

让我知道它是帮助你或没有,否则我会给你的代码

+0

我在imageView.setImageResource(imageAdapter.mThumbIds [position])上出错了;因为它接受整数,但我有数组字符串的意思是说我有图像的网址如何解决 –

+0

我已更新我的问题我有字符串数组如何解决这个问题。 –

+0

从JSON –

您可以通过以下方式将BitMap传递给其他活动。

Intent intent = new Intent(getApplicationContext(),CameraPreviewActivity.class); 
Bundle extras = new Bundle(); 
gridItem = gridItems.get(position); 
bitmap = gridItem.getImage(); 
image_title = gridItem.getImageTitle(); 
ByteArrayOutputStream bos = new ByteArrayOutputStream(); 
bitmap.compress(Bitmap.CompressFormat.JPEG, 50, bos); 
extras.putString(IMAGE_TITLE,image_title); 
extras.putByteArray(IMAGE, bos.toByteArray()); 
intent.putExtras(extras); 
startActivity(intent); 

此代码将进入您的gridview.setOnItemClickListener

然后在下一个活动中使用下面的代码获取图像。

byte[] byteArray = getIntent().getByteArrayExtra(IMAGE); 
Bitmap bmp = BitmapFactory.decodeByteArray(byteArray, 0, byteArray.length); 

希望这有助于!

+0

我已更新我的问题,我有字符串数组如何解决这个问题.. –

您可以通过点击项目的位置,下一个屏幕

 // Sending image id to FullScreenActivity 
    Intent i = new Intent(getApplicationContext(), FullImageActivity.class); 
    // passing array index 
    i.putExtra("id", position); 
    startActivity(i); 

然后在FullImageActivity你可以得到图像的位置和显示为

// get intent data 
Intent i = getIntent(); 

// Selected image id 
int position = i.getExtras().getInt("id"); 
ImageAdapter imageAdapter = new ImageAdapter(this); 

ImageView imageView = (ImageView) findViewById(R.id.full_image_view); 
imageView.setImageResource(imageAdapter.mThumbIds[position]); 

对于您可以访问下面详细参考链接:
http://www.androidhive.info/2012/02/android-gridview-layout-tutorial/