2011-07-18 30 views
0

我目前有一個工作gridview顯示一些縮略圖。目前,當你選擇一張圖片時,它會將圖片的更大分辨率保存爲壁紙。基於從之前的活動Gridview選擇顯示圖像

我想要做的是打開一個新的意圖,然後顯示基於單擊GridView位置的全分辨率圖像。我不確定我是如何找出從新活動/意圖中點擊的位置。

繼承人什麼我在我的主要活動

public class test extends Activity { 
/** 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(getApplicationContext())); 

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

      //Make a Bitmap from the Resource 
      ImageAdapter i = (ImageAdapter)parent.getAdapter(); 
      Bitmap mBitmap = BitmapFactory.decodeResource(getResources(),(int)i.getItemId(position)); 

      //Get the WallpaperManager 
      WallpaperManager myWallpaperManager = WallpaperManager.getInstance(getApplicationContext()); 

      try { 
       //Set the clicked bitmap 
       myWallpaperManager.setBitmap(mBitmap); 
       Toast.makeText(test.this, "Wallpaper set", Toast.LENGTH_SHORT).show(); 
      } catch (IOException e) { 
       Toast.makeText(test.this, "Error setting wallpaper", 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 mFullSizeIds[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(mThumbIds[position]); 
    return imageView; 
} 

// references to our images 
private Integer[] mThumbIds = { 
     R.drawable.sample_1, R.drawable.sample_2, 
     R.drawable.sample_3, R.drawable.sample_4, 
     R.drawable.sample_5, R.drawable.sample_6, 
     R.drawable.sample_7 
}; 


private Integer[] mFullSizeIds = { 
     R.drawable.wallpaper1, 
     R.drawable.wallpaper2, 
     R.drawable.wallpaper3, 
     R.drawable.wallpaper4, 
     R.drawable.wallpaper5, 
     R.drawable.wallpaper6, 
     R.drawable.wallpaper7 
     }; 

}

和空白FullView模板

public class FullView extends Activity { 

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.fullview); 

ImageView imageview; 
    imageview.setImageResource(mFullSizeIds[**]) <--- How to set ** to what GridView position was selected? 


} 

}

我還沒有真正寫在FullView活動做任何事,由於是不知道如何通過在GridView中被點選這一新的活動的立場。

(我沒有寫的意圖代碼在我的主要活動要麼所以你可以看到它目前是如何工作的)

如何傳遞被選入新活動gridview的位置?

回答

1

在您的事件處理程序(OnItemClickListener)中,您可以獲取圖像的資源ID,作爲mThumbs [position]。將此額外添加到用於啓動FullView活動的Intent中。

+0

完美,謝謝。 – jblz

相關問題