点击Imageview并在新活动

时间:2017-09-16 14:53:12

标签: java android

我有一个MainActivity,其中有4个图像视图放在4个不同的卡片视图中 我想要的是,当点击其中一个卡片视图/图像视图时,它会在新活动中全屏显示图像。

我想我可以创建4个新活动,并在每个活动中放置一个全屏图像视图,参考MainActivity中的选定图像。但这种做法似乎并不那么顺利。

我更喜欢一个“imageActivity”,然后传递所选的imageview。可以通过传递资源ID的参数来完成吗?

1 个答案:

答案 0 :(得分:0)

除了我要提供的解决方案之外,还有一个很好的解决方案,但即使我正在学习,如果只有4张卡片视图,我也会做到以下几点。

在MainActivity中创建公共静态变量
public static Drawable resId;

为每个Imageview设置onClickListener。

ImageView image1 = (ImageView) findViewById(R.id.image1);
image1.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        resId = R.drawable.image1;
        Intent intent = new Intent(MainActivity.this,your_fullscreen_activity_name.class);
        startActivity(intent);

    }
});
ImageView image2 = (ImageView) findViewById(R.id.image2);
image2.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        resId = R.drawable.image2;
        Intent intent = new Intent(MainActivity.this,your_fullscreen_activity_name.class);
        startActivity(intent);

    }
});
ImageView image3 = (ImageView) findViewById(R.id.image3);
image3.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        resId = R.drawable.image3;
        Intent intent = new Intent(MainActivity.this,your_fullscreen_activity_name.class);
        startActivity(intent);

    }
});
ImageView image4 = (ImageView) findViewById(R.id.image4);
image4.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        resId = R.drawable.image4;
        Intent intent = new Intent(MainActivity.this,your_fullscreen_activity_name.class);
        startActivity(intent);

    }
});

或在cardviews上,请参阅herehere 创建一个全屏活动并将其名称放在这些意图中 然后在这个fullscreenactivity的java文件中,获取layout / imageview的引用并执行此操作。

    ViewGroup viewGroup = findViewById(R.id.fullscreenLayout);
    viewGroup.setBackgroundDrawable(MainActivity.resId);

    ImageView imageView = findViewById(R.id.fullscreenImageview); 
    imageView .setBackgroundDrawable(MainActivity.resId);

您可以使用imageViewviewGroup

是的,不要忘记在fullscreenactivity的XML文件中添加布局ID,或者创建一个与父布局大小相同的imagview。
如果有什么令人困惑/没有帮助的话,我会帮忙的。