1

我正在尝试使纹理视图在布局更改时保持 16:9 的比例。我使用 percentrelativelayout 来实现它。另外我需要纹理视图在宽度/高度上都不要超过屏幕尺寸。所以我使用 2 层来确保它不会超出屏幕。

它在 android studio 的布局预览中完美调整大小。但是宽度不会改变以保持设备运行时的比率。

这是布局 xml 和屏幕截图。

有人遇到过同样的问题吗?

<android.support.percent.PercentRelativeLayout
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="1"
    android:gravity="center">

    <android.support.percent.PercentRelativeLayout
        android:id="@+id/percent"
        app:layout_aspectRatio="178%"
        app:layout_widthPercent="100%"
        android:background="@android:color/darker_gray">
        <TextureView
            android:id="@+id/texture"
            app:layout_aspectRatio="178%"
            app:layout_heightPercent="100%"
            android:layout_centerInParent="true">
        </TextureView>
    </android.support.percent.PercentRelativeLayout>

</android.support.percent.PercentRelativeLayout>

底部的一种布局设置为可见

底部布局设置为 GONE 后

4

1 回答 1

0

我不得不使用这些 PercentRelativeLayouts 来获得我想要的结果。下面是我用来获得与您正在寻找的相同结果的代码,除了我使用了一个片段。我已经在多种设备上对此进行了测试,并且它适用于所有不同的屏幕尺寸。在你的情况下,我建议用你的 TextureView 替换我的“article_preview_frame”FrameLayout,看看你会得到什么。确保将 PercentRelativeLayout 嵌入到常规的 RelativeLayout 中。

<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/article_preview_relative_layout"
>

<android.support.percent.PercentRelativeLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/article_preview_container">

    <FrameLayout
        app:layout_widthPercent="100%"
        app:layout_aspectRatio="178%"
        android:layout_alignParentTop="true">

        <FrameLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:id="@+id/article_preview_frame"
            />
于 2016-06-07T23:17:37.707 回答