怎样在2.3版本的模拟器运行出4.0风格的样式


这是2.3版本风格的ProgressBar

android中使用自定义控件checkbox,ToggleButton,ProgressBar_ToggleButton


做出4.0效果的风格

android中使用自定义控件checkbox,ToggleButton,ProgressBar_checkbox_02


首先,打开sdk\platforms\android-17\data\res\values里面的style.xml文件


<style name="Widget.Holo.Light.ProgressBar.Horizontal" parent="Widget.Holo.ProgressBar.Horizontal">
<item name="android:progressDrawable">@android:drawable/progress_horizontal_holo_light</item>
</style>


在drawable中找到了selector的文件progress_horizontal_holo_light.xml,拷贝到项目中

进度条含有三种(实际进度,缓冲进度,背景)


<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@android:id/background"
android:drawable="@android:drawable/progress_bg_holo_light" />
<item android:id="@android:id/secondaryProgress">
<scale android:scaleWidth="100%"
android:drawable="@android:drawable/progress_secondary_holo_light" />
</item>
<item android:id="@android:id/progress">
<scale android:scaleWidth="100%"
android:drawable="@android:drawable/progress_primary_holo_light" />
</item>
</layer-list>


 最后在ProgressBar控件的属性里设置android:progressDrawable=""。


<ProgressBar
android:id="@+id/progressBar1"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:progress="40"
android:secondaryProgress="70"
android:progressDrawable="@drawable/progress_horizontal_holo_light"
android:layout_centerVertical="true" />



这是2.3版本风格的ToggleButton

android中使用自定义控件checkbox,ToggleButton,ProgressBar_ToggleButton_03


做出4.0效果的风格

android中使用自定义控件checkbox,ToggleButton,ProgressBar_ProgressBar_04

首先,打开sdk\platforms\android-17\data\res\values里面的style.xml文件

<style name="Widget.Holo.Light.Button.Toggle">
<item name="android:background">@android:drawable/btn_toggle_holo_light</item>
<item name="android:textOn">@android:string/capital_on</item>
<item name="android:textOff">@android:string/capital_off</item>
<item name="android:disabledAlpha">?android:attr/disabledAlpha</item>
<item name="android:textAppearance">?android:attr/textAppearanceSmall</item>
<item name="android:minHeight">48dip</item>
</style>


在drawable中找到了selector的文件btn_toggle_holo_light.xml,拷贝到项目中,里面很多状态,而我们需要改变的是四个状态的图片,选中按下,选中默认,没选中按下,没选中默认。留下这四种状态,并拷贝相应的图片。最后在ToggleButton控件的属性里设置android:background="",也可以设置开关状态显示的文字


<ToggleButton
android:id="@+id/toggleButton1"
android:layout_width="100dp"
android:layout_height="70dp"
android:background="@drawable/btn_toggle_holo_light"
android:text="ToggleButton"
android:textOff="关"
android:textOn="开" />



这是2.3版本风格的checkbox

android中使用自定义控件checkbox,ToggleButton,ProgressBar_ToggleButton_05


做出4.0效果的风格

android中使用自定义控件checkbox,ToggleButton,ProgressBar_checkbox_06


首先,打开sdk\platforms\android-17\data\res\values里面的style.xml文件

<style name="Widget.CompoundButton.CheckBox">
<item name="android:button">?android:attr/listChoiceIndicatorMultiple</item>
</style>


然后要themes.xml文件中查找

<item name="listChoiceIndicatorMultiple">@android:drawable/btn_check_holo_light</item>


在drawable中找到了selector的文件btn_check_holo_light.xml,拷贝到项目中,里面很多状态,而我们需要改变的是四个状态的图片,选中按下,选中默认,没选中按下,没选中默认。留下这四种状态,并拷贝相应的图片。最后在checkbox控件的属性里添加android:button=""。

<CheckBox
android:id="@+id/checkBox1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:button="@drawable/btn_check_holo_light"
android:text="CheckBox" />