我有一个活动,我显然有一个布局。布局的背景是一个图像,TextView放置需要在一个精确的位置。当我将TextView放置在任何布局中时,位置不会随着我期望的背景图像缩放而改变。
如何根据屏幕大小调整TextView?
最简单的解决方案将被接受。
答案 0 :(得分:0)
你的问题有点模糊,但假设你想要的是“将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以获得它出现在相对于巴特的正确高度。我知道这是一项相当多的工作,不幸的是Android布局经常是这样,特别是在你希望以适当的方式将不同的元素粘在一起的情况下,比如语音泡泡。
您可以看到的另一件事是AbsoluteLayout,它允许您将子元素放在完全位置 - 但是强烈建议不要这样做,因为它不能很好地扩展到不同的屏幕尺寸,以及AbsoluteLayout类本身已被弃用并且已经存在了很长时间。
答案 1 :(得分:0)
最好的方法是,如果还没有,则创建2张图像。一个是巴特,另一个是讲话泡泡。 为每个图像创建ImageViews,将Bart设置为左下角,将语音气泡设置到右上角。 然后,您可以将TextView创建为size:wrap_content,并将其拉伸到气泡的大小。然后将TextView的重力设置为居中,您将能够将所有文本置于讲话泡泡的中心。