我正在使用Google's API
Camera2Video
个类Camera2VideoFragment
和AutoFitTextureView
,我遇到了一个小问题。当我在自定义preview
中使用FrameLayout
时,会转到left
角落。
我找到了一种方法来预览它以填充整个framelayout
,但正如预期的那样,它看起来太过拉伸了。完美的解决方案是,如果角落上有一些黑色边缘,屏幕将位于中间。另外我不认为让充气机从中间放大布局会有所帮助,因为可能会出现屏幕足够大以使预览正确适合并且位于中间的情况会破坏它的情况。
指向Google's Camera2Video API
:https://github.com/googlesamples/android-Camera2Video
我创建了一个简单的layout
来展示我得到的东西。 (这是我下载Google's API
后唯一更改的内容,同时也删除了附带的按钮):
XML:
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="250dp"
android:layout_marginBottom="8dp"
android:layout_marginEnd="8dp"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:background="#000"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:context="com.example.android.camera2basic.CameraActivity" />
</android.support.constraint.ConstraintLayout>
我正在看的照片。
答案 0 :(得分:0)
您正在使用在 RelativeLayout 的额外wrapper中包装 AutoFitTextureView 的示例。在那里defines纹理视图的位置为
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
导致您观察到的布局。
您的任务不需要此包装器。您可以将 AutoFitTextureView 直接嵌入 CameraActivity 的 FrameLayout 中。您的 FrameLayout 应该定义
android:gravity="center"
命令孩子们居中。
请注意,如果唯一的子项是id/container
FrameLayout ,则可以删除包装 ConstrantLayout 。