android 代码实现自定义drawable:要求在在一个Drawable上下各画一个圆角卡片,并要求圆角及卡片颜色可以调整,且两个卡片高度可以动态调整
时间: 2024-10-04 15:01:12 浏览: 31
Android实现扫一扫功能之绘制指定区域透明区域
在Android中,你可以通过XML文件创建自定义drawable资源来实现这个需求。以下是步骤:
1. **创建一个`shape`元素**: 首先,在res/drawable目录下创建一个新的xml文件,比如card_round.xml。
```xml
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<!-- 圆角背景 -->
<item>
<shape android:shape="rectangle">
<corners android:radius="5dp" /> <!-- 调整圆角大小 -->
<solid android:color="@color/your_background_color" /> <!-- 设置背景色 -->
</shape>
</item>
<!-- 上部卡片区域 -->
<item android:top="20dp"> <!-- 可以调整高度 -->
<shape android:shape="rectangle">
<corners android:radius="5dp" />
<solid android:color="@color/your_top_card_color" /> <!-- 设置上部卡片颜色 -->
<padding android:bottom="10dp" /> <!-- 添加内边距 -->
</shape>
</item>
<!-- 下部卡片区域 -->
<item android:bottom="20dp"> <!-- 可以调整高度 -->
<shape android:shape="rectangle">
<corners android:radius="5dp" />
<solid android:color="@color/your_bottom_card_color" /> <!-- 设置下部卡片颜色 -->
</shape>
</item>
</layer-list>
```
2. **引用自定义drawable**: 在需要应用这个drawable的地方,如布局文件中的View的background属性或设置成ImageView等组件的src。
```xml
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/card_round"
.../>
```
这里的`@color/your_*_color`需要替换为你实际的颜色资源ID,如`@color/colorPrimary`。
阅读全文