java - 单击 Imageview 并在新 Activity 中打开全屏图像

标签 java android

我有一个 MainActivity,其中 4 个 ImageView 放置在 4 个不同的卡片 View 中。
我想要的是,当单击这些卡片 View / ImageView 之一时,它会在新 Activity 中全屏显示图像。

我想我可以创建 4 个新 Activity ,并在每个 Activity 中放置一个全屏 ImageView ,引用 MainActivity 中选定的图像。但这条路似乎并不那么顺利。

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

最佳答案

可能有比我要提供的更好的解决方案,但即使我正在学习,如果只有大约 4 个卡片浏览,我会执行以下操作。

在MainActivity中创建公共(public)静态变量
公共(public)静态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);
        
    }
});

或在卡片 View 上,请参阅herehere .
创建一个全屏 Activity 并将其名称放入这些 Intent 中。
然后在这个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

是的,不要忘记在全屏 Activity 的 XML 文件中添加布局 id 或创建一个与父布局大小相同的 imagview。
如果有任何事情令人困惑/没有帮助,我会提供帮助。

关于java - 单击 Imageview 并在新 Activity 中打开全屏图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46255167/

相关文章:

java - 如何在合并到 GIT 存储库之前运行本地 Sonar 检查?

Java声音API : Attempt to Do Live Microphone Input Monitoring is Slow

android - 当我的移动数据连接关闭时,如何在 SignalR 中断开连接

java - 当电话关闭时,我的服务表现异常

android - HTC Hero Mouse BOll click 在自定义 ListView 上不起作用?

android - 如何更新sqlite中的整个列?

java - 读取/写入 pbxproj/xcodeproj 文件的库?

java - 需要帮助将 DCGAN 转换为 Java for Tensorflow for Java

java - 数独求解算法未按预期工作

android - OsmDroid 和 MapQuest : How can I use JPEG tiles?