我正在尝试将 aLayerDrawable
用于自定义 UI 小部件,并使用与其他图层不同的边界来绘制一个图层,但它似乎不起作用。本质上,我的代码是这样做的:
int left, top, right, bottom;
/*... do some math ... */
Drawable d = mDrawable.findDrawableByLayerId(R.id.some_specific_layer);
d.setBounds(left, top, right, bottom);
同时,xml 看起来像这样:
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item>
<shape android:shape="rectangle" >
<solid android:color="#ff999999" />
</shape>
</item>
<item
android:id="@id/some_specific_layer"
android:drawable="@drawable/some_drawable"/>
所以理想情况下,我会在一个灰色矩形上看到 some_drawable,从后面显示的灰色量取决于边界计算的结果。但我从来没有看到任何灰色层,这似乎是因为它的边界也在以某种方式设置。
编辑
这是期望与预期结果的视觉效果:
最上面的图像是我想要实现的;灰色对应于第一层,渐变对应于具有预定义的第二层id
。实际结果从不显示灰色。
有谁知道是否可以在LayerDrawable
不影响其他层的情况下设置一层的边界?