如何将此TextView放置到此活动上?

时间:2012-11-12 01:12:58

标签: android android-layout

我有一个活动,我显然有一个布局。布局的背景是一个图像,TextView放置需要在一个精确的位置。当我将TextView放置在任何布局中时,位置不会随着我期望的背景图像缩放而改变。

如何根据屏幕大小调整TextView?

最简单的解决方案将被接受。

bart speech bubble

2 个答案:

答案 0 :(得分:0)

你的问题有点模糊,但假设你想要的是“将TextView放在上图中的语音气泡上”,你可能需要做一些工作。您可以尝试使用边距等,以便在语音图像上给它一个精确的位置,但这将非常棘手,并且可能永远不会完全像您想要的那样工作。您最简单的选择是执行以下操作

  1. 使用Photoshop,Paint或任何编辑程序剪切Bart和语音气泡并将其保存为单独的图像。
  2. 使用RelativeLayout,背景颜色设置为黑色android:background="@android:color/black"
  3. 使用Bart的图形放置ImageView,并在其上设置以下属性:android:layout_alignParentLeft="true"android:layout_alignParentBottom="true"和`android:id =“@ id / img_bart”。
  4. 放置TextView,设置背景以使用语音气泡图像(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以获得它出现在相对于巴特的正确高度。
  5. 我知道这是一项相当多的工作,不幸的是Android布局经常是这样,特别是在你希望以适当的方式将不同的元素粘在一起的情况下,比如语音泡泡。

    您可以看到的另一件事是AbsoluteLayout,它允许您将子元素放在完全位置 - 但是强烈建议不要这样做,因为它不能很好地扩展到不同的屏幕尺寸,以及AbsoluteLayout类本身已被弃用并且已经存在了很长时间。

答案 1 :(得分:0)

最好的方法是,如果还没有,则创建2张图像。一个是巴特,另一个是讲话泡泡。 为每个图像创建ImageViews,将Bart设置为左下角,将语音气泡设置到右上角。 然后,您可以将TextView创建为size:wrap_content,并将其拉伸到气泡的大小。然后将TextView的重力设置为居中,您将能够将所有文本置于讲话泡泡的中心。