【发布时间】:2013-11-23 02:24:02
【问题描述】:
我已经在互联网上搜索了几个小时来寻找解决此问题的方法,但我似乎找不到有效的答案。 我编写了一个 android 应用程序,它使用 Eclipse 中的相机模拟器拍摄照片并将其保存到 sd 卡(使用名为“file”的字符串存储路径)。我想做的是显示图像,最好是在一种弹出窗口中,用另一个按钮关闭它并返回应用程序。我希望我需要创建另一个类来执行此操作,但我不确定所涉及的所有内容。我是否必须创建另一个 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);
}
【问题讨论】: