android - android:以编程方式创建具有状态的自定义形状
问题描述
如何在 Kotlin(或 java)中创建具有状态的形状,例如我想用 Kotlin(或 java)创建以下形状
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="true" android:state_pressed="true">
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<corners android:radius="999dp" />
<stroke android:width="6dp" android:color="#bfbfbf" />
<solid android:color="#f44336" />
</shape>
</item>
<item android:state_pressed="true">
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<corners android:radius="999dp" />
<stroke android:width="2dip" android:color="#E0E0E0" />
<solid android:color="#f44336" />
</shape>
</item>
<item android:state_checked="true">
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<corners android:radius="999dp" />
<stroke android:width="2dip" android:color="#E0E0E0" />
<solid android:color="#f44336" />
</shape>
</item>
<item>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<corners android:radius="999dp" />
<stroke android:width="6dp" android:color="#bfbfbf" />
<solid android:color="#f44336" />
</shape>
</item>
解决方案
推荐阅读
- angular - 如何实现 BehaviorSubject 以反映 2 个组件的变化?
- javascript - 为什么我可以使用 [1] 而不是 [one] 创建属性?
- gatling - 无法在请求中从 Feeder 文件传递值
- r - 使用函数参数作为数据帧的名称,使用超级赋值 <<-
- android - (方法 Glide.with(android.content.Context) 不适用)
- azure-functions - DurableEntity - 模拟 SignalEntityAsync
- single-sign-on - 客户端使用 https 时,Keycloak 重定向 uri 无效
- azureservicebus - 偷看后如何从队列中删除消息?
- android - Kotlin 中的 Android 自定义 Spinner
- android - Android中的Hilt依赖注入仪器测试