我想在res / values / styles.xml中只指定一次两个复选框及其四个形状drawable的大小
> res / drawable / cb1_checked.xml
> res / drawable / cb1_unchecked.xml
> res / drawable / cb2_checked.xml
> res / drawable / cb2_unchecked.xml.
这样,尺寸将在样式中出现一次,而不是在drawable中出现四次.
下面的两次尝试都不起作用.你能建议一个解决方案吗? (如果您发现这两次尝试有什么问题,请提及.)
————————————————– ————–尝试1 ———————————- ——————————
更换
RES /抽拉/ cb1_checked.xml
- <size android:width="24dp"
- android:height="24dp" />
同
RES /值/ styles.xml
- <item name="android:layout_width">24dp</item>
- <item name="android:layout_height">24dp</item>
————————————————– ————–尝试2 ———————————- ——————————
加
RES /值/ styles.xml
- <item name="android:background">cb_background</item>
并定义一个可绘制的背景
RES /抽拉/ cb_background.xml
- <?xml version="1.0" encoding="utf-8"?>
- <shape xmlns:android="http://schemas.android.com/apk/res/android"
- android:shape="rectangle">
- <solid android:color="#00FF00"/>
- <size android:width="24dp"
- android:height="24dp" />
- </shape>
————————————————– – – – – – – – 添加 – – – – – – – – – – – – – – – – – – —————————–
以下是完整的XML文件集:
RES /布局/ activity_main.xml中
- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:id="@+id/MyLL"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content">
- <CheckBox
- android:id="@+id/cb1"
- style="@style/CB_style"
- android:button="@drawable/cb1_selector"
- android:height="@dimen/my24sp" />
- <CheckBox
- android:id="@+id/cb2"
- style="@style/CB_style"
- android:button="@drawable/cb2_selector"
- android:height="@dimen/my24sp" />
- </LinearLayout>
RES /值/ styles.xml
- <style name="AppBaseTheme" parent="android:Theme.Light">
- </style>
- <style name="AppTheme" parent="AppBaseTheme">
- </style>
- <style name="CB_style" parent="@android:style/TextAppearance.Medium">
- <item name="android:layout_width">wrap_content</item>
- <item name="android:layout_height">wrap_content</item>
- <item name="android:layout_weight">1</item>
- <item name="android:layout_gravity">center_horizontal</item>
- <item name="android:gravity">center</item>
- <item name="android:checked">false</item>
- </style>
RES /抽拉/ cb1_selector.xml
- <?xml version="1.0" encoding="utf-8"?>
- <selector xmlns:android="http://schemas.android.com/apk/res/android"
- android:constantSize="true">
- <item android:state_checked="true"
- android:drawable="@drawable/cb1_checked" />
- <item android:state_checked="false"
- android:drawable="@drawable/cb1_unchecked" />
- </selector>
RES /抽拉/ cb1_checked.xml
- <?xml version="1.0" encoding="utf-8"?>
- <shape xmlns:android="http://schemas.android.com/apk/res/android"
- android:shape="rectangle">
- <solid android:color="#FF0000"/>
- <size android:width="24dp"
- android:height="24dp" />
- </shape>
RES /抽拉/ cb1_unchecked.xml
- <?xml version="1.0" encoding="utf-8"?>
- <shape xmlns:android="http://schemas.android.com/apk/res/android"
- android:shape="rectangle">
- <solid android:color="#880000"/>
- <size android:width="24dp"
- android:height="24dp" />
- </shape>
(类似于cb2选择器和已检查/未选中的drawables)