使用相机捕获图像并将图像视图放在上面,怎么做?

3
有没有什么方法可以做到这一点?我按照这个教程 (http://marakana.com/forums/android/examples/39.html) 做了,效果很好。此外,我将包含相机预览的FrameLayout放入RelativeLayout中,并添加了一个ImageView。
<RelativeLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" >



    <FrameLayout
        android:id="@+id/preview"
        android:layout_width="330dp"
        android:layout_height="233dp"
        android:layout_marginTop="22dp"
        android:layout_alignBottom="@+id/imageView1"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true" >
    </FrameLayout>

<ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/image_on_preview" />

</RelativeLayout>

现在,我在应用程序上有一个相机和一个图像视图。如果我将照片保存到SD卡中,我只会得到相机拍摄的图片,但是图像视图不会出现(当然,为什么会出现呢)。现在我的问题是如何同时保存它们?为了更好地理解,我在使用我的应用程序时捕获了屏幕截图。
因此,我想将相机预览和图像视图一起保存在一张图片中。我不确定是否可能,但是如果我不必将图片保存到SD卡上,那将是最好的。稍后我会添加一个“保存到SD卡”的按钮来保存它。
**更新
现在我找到了一种方法。我将图片保存在SD卡上,然后当文件创建时,我切换到另一个意图。它包含两个图像视图,“image_on_preview”和另一个具有之前保存图片源的图像视图。现在我只需要想办法巧妙地结合这两个图像视图 :)
***更新2
好的,我做到了。在第二个活动中,我将两个图像视图转换为位图。然后我绘制一个画布,将它们放在彼此上面,然后我可以直接将其保存到SD卡。
1个回答

3

由于没有人回答并且我已经解决了问题(还有一个投票),所以我展示了自己的方法。

  1. 在第一个活动中,有一个RelativeLayout,其中有一个FrameLayout和一个Imageview。就像附图一样。
  2. 我创建了一个按钮,用于捕获图像。当我按下该按钮时,我将捕获的照片保存到SD卡中并切换到activity2。
  3. 在activity2中,我将保存的图像读入位图(我立即对其进行缩放以避免OutOfMemory错误),然后将其添加到一个ImageView中。就像在activity1中一样,我将另一个ImageView(覆盖)和保存的照片放在RelativeLayout中。
  4. 为了将其保存到SD卡中,我需要创建一个画布,并使用canvas.drawBitmap()。我首先绘制捕获的照片,然后是ImageView(覆盖),并且放置/缩放它们以看起来与activity中的相同。画布将绘制位图,您可以将其保存到sd卡中。 5 *(可以跳过)删除第一张图片。

希望这对某个人有用:)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接