如何在相机上移动 ImageView?

Posted

技术标签:

【中文标题】如何在相机上移动 ImageView?【英文标题】:How to move ImageView over camera? 【发布时间】:2013-08-08 06:24:39 【问题描述】:

有没有办法让图像视图可以在相机上移动?我希望能够在顶部的 imageview 上拍照。

谢谢!!

【问题讨论】:

【参考方案1】:

是的,你需要做的就是

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_
    android:layout_
    android:gravity="center" >

<!--Add your surface view to this frame layout  -->
<FrameLayout
    android:id="@+id/camera_preview"
    android:layout_
    android:layout_ >
</FrameLayout>
<ImageButton
    android:id="@+id/button_capture"
    android:src="@drawable/camera" />    

图像按钮或任何其他视图将显示在显示相机框架的表面视图所在的框架布局的顶部。要移动图像,您可以执行类似的操作

void onTouch(Event event)

 params.leftMargin = (int)event.getX(); 
 params.topMargin = (int)event.getY();
 imagebutton.setLayoutParams(params);

【讨论】:

【参考方案2】:

实际上,您似乎想要制作合成图像。您可以使用其他答案中描述的方法进行预览,但是当您实际拍摄照片时,您需要将图像插入到拍摄的照片中。不要忘记拍摄的图片尺寸可能会大于预览图,因此您可能需要更改插入的图片尺寸/位置以匹配。

【讨论】:

谢谢!但是如何更改图片的大小和位置以匹配预览? 如果您知道预览的大小和最终图片的大小,您可以计算一个标量并将您的图像大小和位置乘以它。双倍比例 = finalPictureWidth / previewWidth; previewOverlayWidth = finalPictureOverLayWidth * 比例; previewOverlayXPos = finalPictureOverlayXPos * 比例; ..然后对高度做同样的事情,你就有了预览的缩放覆盖位置和大小..

以上是关于如何在相机上移动 ImageView?的主要内容,如果未能解决你的问题,请参考以下文章

ImageView 在相机表面视图后面移动

在 imageview 中使用时从相机或画廊拍摄的图片其方向发生变化,有时在 Android 中会垂直拉伸

imageView添加阴影和边框

如何在特定的imageView上上传特定的图像点击来自android中的画廊和相机

如何从图库和相机的 imageview 中设置图像? [复制]

如何显示来自相机的捕获图像并从文件路径显示在图像视图中? [复制]