使用图库作为菜单

时间:2013-08-31 17:38:04

标签: android image menu onclick gallery

我正在尝试将图片库用于我的应用程序菜单。目标是当用户点击图像时,它会将您发送到特定活动。问题是我不知道如何将每个图像与每个活动相关联。例如,如果您单击第一个图像,它会打开一个游戏,如果您点击第二个图像,则转到应用程序选项...我该怎么办?

public class Carrusel extends Activity implements OnClickListener {

ImageView lastClicked = null;
int padding = 10;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.start);
LinearLayout l;
l = (LinearLayout) findViewById(R.id.carrusel);
int[] images = new int[] { R.drawable.image1, R.drawable.image2,
        R.drawable.image3,R.drawable.image4,R.drawable.image5};
for (int i = 0; i <5; i++) {
    ImageView iv = new ImageView(this);
    iv.setImageResource(images[i]);
    iv.setPadding(padding, padding, padding, padding);
    iv.setOnClickListener(this);
    l.addView(iv);
}
}

@Override
public void onClick(View v) {
    Intent i= new Intent (this, Flip3d.class);
    startActivity (i);

}
}

最后一次“onClick”测试了我的尝试。显然在这种情况下,所有图像都打开相同的活动,这就是我想要改变的。

2 个答案:

答案 0 :(得分:1)

在OnClickListener上为每个ImageView创建。

iv.setOnClickListener (new OnClickListener() {
   @Override
   OnClick(View v) {
     // start the activity you want
   }
});

答案 1 :(得分:0)

您可以为您的imageview设置ID,可以在onClick中使用它来识别您的视图。

protected void onCreate(Bundle savedInstanceState) {
    // ...
    for (int i = 0; i <5; i++) {
        ImageView iv = new ImageView(this);
        iv.setImageResource(images[i]);
        iv.setPadding(padding, padding, padding, padding);
        iv.setOnClickListener(this);
        iv.setId(mIvIds[i]);
        l.addView(iv);
    }
}

public void onClick(View v) {
    if (v.getId() == mIvIds[0]) {
        Intent i= new Intent (this, Flip3d.class);
        startActivity (i);
    } else if (v.getId() == mIvIds[1]) {
    // other stuff
    } else if (v.getId() == mIvIds[2]) {
    // ...
    }

}

但首先你需要为mIvIds[]生成新的ID。在API17中为此功能添加了View.generateViewId()。但是,如果只有你的图像视图附加到该onclick监听器,我认为如果你使用一些随机整数(例如1,2,3,......)应该没有问题