视图未保留可绘制 XML 高度?
Drawable XML height not preserved by View?
我有一个高度为 50dp
的可绘制对象 xml mybackground.xml
<?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
未保留 mybackground.xml
上定义的 height
。我错过了什么吗?
我查看了您的问题,很想将视图 class 与其他 class 进行比较。导致在viewclassmeasure()中没有计算背景尺寸的部分,而在FrameLayout、ImageView等的measure()中,尺寸是考虑尺寸来决定的的背景。这似乎是一个简单的概念问题。
我有一个高度为 50dp
的可绘制对象 xmlmybackground.xml
<?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
未保留 mybackground.xml
上定义的 height
。我错过了什么吗?
我查看了您的问题,很想将视图 class 与其他 class 进行比较。导致在viewclassmeasure()中没有计算背景尺寸的部分,而在FrameLayout、ImageView等的measure()中,尺寸是考虑尺寸来决定的的背景。这似乎是一个简单的概念问题。