我在我的可绘制文件夹中实现了以下按钮样式:
<layer-list
xmlns:android="http://schemas.android.com/apk/res/android"
>
<item>
<shape
android:shape="rectangle"
>
<stroke android:width="1dp" android:color="#FF666666" />
<corners
android:radius="@dimen/corner_radius"
/>
<solid
android:color="#FF000000"
/>
</shape>
</item>
<item
android:bottom="22dp" android:top="1dp" android:left="1dp" android:right="1dp"
>
<shape
android:shape="rectangle"
>
<corners
android:topLeftRadius="@dimen/corner_radius" android:topRightRadius="@dimen/corner_radius"
/>
<solid
android:color="#10FFFFFF"
/>
</shape>
</item>
</layer-list>
我的问题是我想将第二项设置为高度的一半,相对而言,而不是绝对。你可以看到我在这里设置了 'android:bottom="22dp"' 因为我的按钮通常是 45dp 高度。但是,无论按钮的高度如何,我都希望第二个项目始终处于高度的一半。有什么想法吗?
最佳答案
在@Tyler 的帮助下,我找到了一种更简单的方法:
LayerDrawable layerList = (LayerDrawable)getResources().getDrawable(R.drawable.btn_background).mutate();
btnBlackLayerList.setLayerInset(0, 0, 0, btnHeight/2);
btn.setBackground(layerList);
关于android - 使用图层列表定义一个可绘制对象,该图层列表中有一个高度为一半的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15125054/