我有一个活动,我显然有一个布局。布局的背景是一张图片,TextView 的放置需要在一个精确的位置。当我将 TextView 放置在任何布局中时,位置不会像我预期的那样随着背景图像的缩放而改变。
如何让 TextView 根据屏幕大小进行缩放?
最简单的解决方案将被接受。
我有一个活动,我显然有一个布局。布局的背景是一张图片,TextView 的放置需要在一个精确的位置。当我将 TextView 放置在任何布局中时,位置不会像我预期的那样随着背景图像的缩放而改变。
如何让 TextView 根据屏幕大小进行缩放?
最简单的解决方案将被接受。
您的问题有点含糊,但假设您的目标是“将 TextView 放在上图中的对话气泡上”,您可能还有一些工作要做。您可以尝试使用边距等来使其在语音图像上精确放置,但这将非常棘手,并且可能永远不会完全按照您的意愿工作。您最简单的选择是执行以下操作
android:background="@android:color/black"
。android:layout_alignParentLeft="true"
、android:layout_alignParentBottom="true"
和 `android:id="@id/img_bart"。android:background="@drawable/img_speech"
或任何您称之为语音气泡图像),将其设置为显示在 Bart 的右侧android:layout_toRightOf="@id/img_bart"
,然后将其捕捉到顶部(android:layout_alignParentTop="true"
- 这可能会导致高屏幕出现问题但是),或通过android:layout_alignParentBottom="true"
和以适当的量捕捉到底部偏移量android:layout_marginBottom="150dp"
,修改 150 以使其相对于 Bart 出现在正确的高度。我知道这是一项相当大的工作,不幸的是,Android 布局通常是这样,尤其是在您希望以适当的方式将不同的元素粘在一起的情况下,例如气泡。
您可以查看的另一件事是 AbsoluteLayout,它允许您将子元素放置在确切的位置 - 但是强烈建议不要这样做,因为它不能很好地扩展到不同的屏幕尺寸,并且 AbsoluteLayout 类本身已被弃用并且一直存在很久。
最好的方法是,如果它们还没有,则从中创建 2 个图像。一个是巴特,另一个是讲话泡泡。为每个图像创建 ImageViews,将 Bart 设置在左下角,将对话气泡设置在右上角。然后,您可以将 TextView 创建为 size:wrap_content,并将其拉伸到气泡的大小。然后将 TextView 的重力设置为中心,您将能够让所有文本在对话气泡内居中。