视图无法保留可绘制XML高度吗?

时间:2018-06-23 01:52:09

标签: android android-view android-drawable layer-list

我有一个可绘制的xml mybackground.xml,高度为50dp

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape>
            <gradient
                android:endColor="#00FF00"
                android:startColor="#00FFFF" />
            <size android:height="50dp" />
        </shape>
    </item>
</layer-list>

如果我在ImageView

中按如下方式使用它
<?xml version="1.0" encoding="utf-8"?>
<ImageView xmlns:android="http://schemas.android.com/apk/res/android"
    android:background="@drawable/mybackground"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    />

或在FrameLayout

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:background="@drawable/mybackground"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    />

显示为

enter image description here

但是,如果我改用View

<?xml version="1.0" encoding="utf-8"?>
<View xmlns:android="http://schemas.android.com/apk/res/android"
    android:background="@drawable/mybackground"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    />

它显示为

enter image description here

View没有保留在height上定义的mybackground.xml。我有想念吗?

1 个答案:

答案 0 :(得分:1)

我看着您的问题,很好奇将View类与其他类进行比较。结果,视图类小节()中没有任何内容可以计算背景的大小,而在FrameLayout,ImageView等的小节()中,确定尺寸时要考虑背景的大小。这似乎是一个简单的概念性问题。