这个标签和它的孩子可以被一个<textview>和一个复合Drawable </textview>取代

时间:2013-01-20 04:31:30

标签: android xml eclipse android-emulator

我查看了类似的问题并使用了它的答案,但是如果我将它们组合成1 TextView并放置android:drawableTop=它显示出非常奇怪的地方,因为我现在它只是堆叠图像文本的顶部是我想要的。

原始

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".Navigation" >

    <ImageView
        android:id="@+id/logo"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:contentDescription="@string/logo_name"
        android:src="@drawable/generic_logo" />

    <TextView
        android:id="@+id/about"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/about"
        android:textSize="55sp"
        android:onClick="onClick"
        android:clickable="true" />

</LinearLayout>

使用复合

    <TextView
        android:id="@+id/about"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/about"
        android:textSize="55sp"
        android:onClick="onClick"
        android:clickable="true"
        android:drawableTop="@drawable/generic_logo" />

</LinearLayout>

“化合物”将图像拉伸到我模拟的android的参数之外。我怎样才能解决这个问题并摆脱警告呢?

1 个答案:

答案 0 :(得分:2)

因此,就测量和布局而言,这两者实际上做的完全不同。首先是弄清楚图像需要多少空间,把它放在那里,弄清楚文本需要多少空间,然后把它放在图像下面。

第二个是弄清楚文本需要多少空间。然后将图像绘制在背景的顶部,对其进行缩放以适合文本使用的整个空间。然后它在上面绘制文本。

如果您想要拉伸图像,请使用第一个版本。第二个版本是错的。复合绘图用于9个补丁,其中单个背景图像被分成几部分。

如果这些都没有做到你真正想要的,那么解释一下是什么,我们会看看我们是否可以弄清楚如何去做。