应用小部件布局:图像上方的文本行,在边界框内居中

Posted

技术标签:

【中文标题】应用小部件布局:图像上方的文本行,在边界框内居中【英文标题】:App widget layout: text line above an image, center inside bounding box 【发布时间】:2018-09-26 02:09:54 【问题描述】:

我有一个非常简单的应用小部件布局:图像上方的一行文本。

图像应缩放以适合小部件的边界框(保持纵横比),并且文本应与其下方的图像左对齐。它们应该一起出现在小部件边界框的中间。

我无法让它工作。我管理的最好的方法是对齐边界框的左上角,如下所示:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:layout_
              android:layout_
              android:orientation="vertical">
    <TextView
            android:id="@+id/text"
            android:layout_
            android:layout_
            android:layout_gravity="bottom"
    />
    <ImageView
        android:id="@+id/image"
        android:layout_
        android:layout_
        android:layout_weight="1"
        android:layout_gravity="top"
        android:scaleType="fitStart"
    />
</LinearLayout>

我无法指定将顶部居中对齐的scaleType,我也无法让图像视图占用图像所需的空间。

【问题讨论】:

你应该使用相对布局或框架布局,或坐标布局,它们会更好地调整线性布局所没有的视图。 你能展示你真正想要什么但你实际拥有的图像吗? 【参考方案1】:

试试这个,Here is an image,如果您希望您的布局在横向模式下显示为您想要的,您必须为横向模式创建另一个布局或保持您的视图处于纵向模式。

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

<TextView
    android:id="@+id/txt"
    android:layout_
    android:layout_
    android:layout_above="@+id/img"
    android:text="Text Line"
    android:textColor="@color/black" />

<ImageView
    android:id="@+id/img"
    android:layout_
    android:layout_
    android:layout_centerInParent="true"
    android:adjustViewBounds="true"
    android:src="@drawable/signuptop" />

</RelativeLayout>

【讨论】:

这似乎适用于高边框,但在宽边框中失败,因为图像视图没有为文本视图留出空间的限制。我想每种情况的专门布局都可以做到。

以上是关于应用小部件布局:图像上方的文本行,在边界框内居中的主要内容,如果未能解决你的问题,请参考以下文章

如何通过鼠标拖放来更改布局中小部件的顺序?

在 Vaadin Flow 中的布局中居中小部件

如何在堆栈中垂直或水平居中小部件?

什么是保存从图像分割的文本行的matlab代码

合并 MSER 中的区域以识别 OCR 中的文本行

颤振剪辑,剪辑的小部件周围没有空间