我有一个可绘制的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"
/>
显示为
但是,如果我改用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"
/>
它显示为
View
没有保留在height
上定义的mybackground.xml
。我有想念吗?
答案 0 :(得分:1)
我看着您的问题,很好奇将View类与其他类进行比较。结果,视图类小节()中没有任何内容可以计算背景的大小,而在FrameLayout,ImageView等的小节()中,确定尺寸时要考虑背景的大小。这似乎是一个简单的概念性问题。