【问题标题】:Capturing image with camera and put an imageview on that, how?用相机捕获图像并在其上放置图像视图,如何?
【发布时间】:2012-07-29 06:07:47
【问题描述】:

有没有办法做到这一点?我按照本教程(http://marakana.com/forums/android/examples/39.html)进行了操作,效果很好。此外,我将 FrameLayout(包含相机预览)放入带有 ImageView 的 RelativeLayout。

<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 卡,我只会得到用相机拍摄的图片,但不会出现 imageview(当然,为什么会出现)。现在我的问题是如何保存它? 为了更好地理解,我在使用我的应用程序时捕获了一个屏幕截图。

所以我想将相机预览和图像视图都保存在一张图片中。我不确定这是否可能,但如果我不必将照片保存到 SD 卡上,那将是最好的。我稍后会添加一个“保存到SD卡”按钮来保存它。

**更新

现在我想出了一个办法。我将图片保存在 SD 卡上,然后在创建文件时更改为另一个意图。它包含两个图像视图,一个是“image_on_preview”,另一个是我之前保存图片的来源。好的,现在我只需要以某种方式变得棘手并将两个图像视图结合起来:)

***更新2

好的,我做到了。在第二个活动中,我将两个图像视图都转换为位图。然后我画了一个 Canvas 并将它们放在一起,然后我可以将它直接保存到 SD 卡中。

【问题讨论】:

    标签: android camera imageview


    【解决方案1】:

    由于没有人回答并且我解决了问题(并且有一票赞成)我展示了我自己的方法。

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

    希望这对某人有用:)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-02-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多