使用下面的图层列表,我的尺度drawable永远不会显示.这是为什么?
menu_dialog_header.xml
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape>
<solid android:color="@color/black"></solid>
</shape>
</item>
<item>
<scale
android:scaleHeight="50%"
android:scaleWidth="100%"
android:scaleGravity="top"
android:drawable="@drawable/shine" />
</item>
</layer-list>
Run Code Online (Sandbox Code Playgroud)
shine.xml
<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="@color/shine" />
</shape>
Run Code Online (Sandbox Code Playgroud)
menu_dialog.xml
<!-- header -->
<LinearLayout
android:background="@drawable/menu_dialog_header"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal|center"
android:padding="8dp"
android:orientation="horizontal" >
...
Run Code Online (Sandbox Code Playgroud)
Joe*_*nte 14
我有一个可能或可能不适合您的解决方法:而不是使用<scale>
,请尝试<inset>.您可以使用<item>'s android:top/ android:bottom/ android:left/ android:right和<inset>android:insetXXX的组合来调整图像大小
您可以执行以下操作:将每个插入值的边设置为相对于源图像的尺寸.例如,如果你有一个64像素宽的图像并希望将其减少50%,你可以为每一面做(64/4 = 16)
这不完全是LayerLists的错.ScaleDrawable还取决于drawable的级别,如(简要)在Drawable Resources和ScaleDrawable引用中提到的那样.
似乎没有关于ScaleDrawable如何解释关卡的文档.
似乎没有办法在XML中设置drawable的级别,这反映了ScaleDrawable的主要用例是为drawable的大小设置动画.因此,您必须在代码中设置drawable的级别.
我非常同情你在这里使用ScaleDrawable,因为它允许通过能够定位drawable并定义它们的大小来更强大的方式来堆叠drawable.
| 归档时间: |
|
| 查看次数: |
10114 次 |
| 最近记录: |