Android - 如何在setContentView(img)之后返回到原始屏幕视图

时间:2016-06-20 16:49:03

标签: java android

我写了一个应用程序,其中有一个包含缩略图的屏幕视图,当我点击它时,我想要扩展到全屏视图(使用平移和缩放)。

平移缩放的大视图工作正常,但我想在单击大图像时返回原始视图。

final TouchImageView imgBig = new TouchImageView(Dashboard.this);
final ImageView img = (ImageView) findViewById(R.id.graph);
final Bitmap bitmap = result.getImage();

img.setImageBitmap(bitmap);
img.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        imgBig.setImageBitmap(bitmap);
        imgBig.setMaxZoom(4f);
        setContentView(imgBig);
        imgBig.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

            // What do I need to do here to return to original thumbnail screen view?

            }
        });
    }
});

尝试过很多事情但没有成功!

1 个答案:

答案 0 :(得分:0)

只需原始的setContentView(R.layout.main)将其设置回来。

在布局xml中安装ImageView并设置其图像并显示和隐藏它可能会更好。否则你只会遇到一个可能有限的观点。

当您执行setContentView时,它会使用该内容初始化您的活动。因此,如果你想在它上面放置一些东西,你可能只有一个隐藏的视图。在您的布局xml代码中,创建一个位于所有其他视图之上的图像视图。然后设置其visibility =“gone”,使其隐藏。 然后在你的onClick上而不是调用setContentView,只需像你一样设置图像位图,并调用imgBig.setVisibility(View.Gone或View.Visible)来显示或隐藏你的大图像。

另一种可能性是进行2项活动。并调用startActivity来显示您的大图像,然后完成返回其他活动。

另一种可能性是使用片段,但可能更多涉及。