单击按钮后弹出窗口中显示图像 - Android / Java

时间:2013-11-23 02:24:02

标签: java android image view

我几个小时以来一直在互联网上搜索这个问题的解决方案,我似乎无法找到有效的答案。 我编写了一个Android应用程序,它使用Eclipse中的相​​机模拟器拍摄照片并将其保存到SD卡(路径使用名为“文件”的字符串存储)。我想要做的是显示图像,最好是在一个弹出窗口中,用另一个按钮关闭它并返回到应用程序。我希望我需要创建另一个类才能做到这一点,但我不确定所涉及的是什么。我是否必须创建另一个XML文件来进行布局?我怎么能访问该文件并显示它?我希望如果我要使用另一个类,我将使用ImageView,但除此之外,我不知道该怎么做。 除了单击按钮时调用的方法之外,我可以提供的代码并不多。这部分代码工作正常,它只是一个看起来像这样的方法:

public void viewPhoto(file){ }

如你所见,我在方法中没有任何内容,这就是我在这里发帖的原因。 我一直试图弄清楚这几个小时,所以我非常感谢你们的任何想法。

编辑:更多信息

我发现的许多建议都要求将图像存储在项目的“src”文件夹中。但是,这张照片将在同一个程序中被拍摄和使用,因此我必须能够仅使用其文件路径来访问它。我不能只在XML中说明它的位置。我在现有代码中创建了一个Dialog对象,但我不确定这是否有效。我打算使用的对话框应该能够从存储在前面提到的字符串中的指定路径访问照片。

我一直在提到这个帖子中的第一个答案:Android Image Dialog/Popup 但正如您所看到的,它需要图像位于src文件夹中并在XML中指定。

第二次编辑:

以下是我目前拥有的代码,包括XML和Java。但首先我想提一下我有两个XML文件 - 一个名为activity_main.xml,它处理所有初始按钮,菜单等。第二个只用于我的照片(称为photo_viewer.xml),它只包含ImageView

photo_viewer.xml:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/pictureViewer"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" >

    <ImageView
        android:id="@+id/imageView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:contentDescription="@string/viewImage" />

</RelativeLayout>

生成图像的Java方法:

public void viewPhoto(String file){ 
    ImageView imageView = new ImageView(getApplicationContext());
    LayoutParams lp = new LayoutParams(LayoutParams.WRAP_CONTENT,
        LayoutParams.WRAP_CONTENT);
    Bitmap image = BitmapFactory.decodeFile(file);
    imageView.setImageBitmap(image);
    RelativeLayout rl = (RelativeLayout)findViewById(R.id.pictureViewer);
    rl.addView(imageView, lp);
}

1 个答案:

答案 0 :(得分:1)

你需要创建一个扩展Dialog Class的类。

参考这个如何创建自己的对话框。

How to create a Custom Dialog box in android?

然后显示图像只需调用DialogObj.show()来显示对话框。