Android 常用控件自定义样式RadioButton、CheckBox、ProgressBar、

一、RadioButton / CheckBox  

  系统自带的RadioButton/CheckBox的样式,注定满足不了实际运用中的情况,有时候自定义自己的样式;此次把自己中工作学习过程中所学到的东西总结如下:

  先看效果图:

Android 常用控件自定义样式RadioButton、CheckBox、ProgressBar、

    <RadioButton

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:button="@null"

        android:drawableRight="@drawable/rb_background"

        android:text="AAA" />



    <RadioButton

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:button="@null"

        android:checked="true"

        android:drawableRight="@drawable/rb_background"

        android:text="BBB" />
rb_background.xml
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:drawable="@drawable/bg2" android:state_checked="true" android:state_enabled="true"></item>

    <item android:drawable="@drawable/bg1" android:state_checked="false"></item>

</selector>

都比较简单,换作CheckBox也是一样的道理,不再举例;
  另:在使用RadioGroup的时候,居然突然想不起来怎么获取当选前择的是哪一项,经过查证,通过RadioGroup.OnCheckedChangeListener接口即可获取选择项改变事件回调捕获选项id;

        group.setOnCheckedChangeListener(new OnCheckedChangeListener() {

            @Override

            public void onCheckedChanged(RadioGroup group, int checkedId) {

            }

        });

二、ProgressBar
  1、使用图片实现滚动效果.原始图像Android 常用控件自定义样式RadioButton、CheckBox、ProgressBar、

<?xml version="1.0" encoding="utf-8"?>

<rotate xmlns:android="http://schemas.android.com/apk/res/android"

    android:drawable="@drawable/image_progress"

    android:pivotX="50%"

    android:pivotY="50%" >



</rotate>

Android 常用控件自定义样式RadioButton、CheckBox、ProgressBar、Android 常用控件自定义样式RadioButton、CheckBox、ProgressBar、

    <ProgressBar

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:indeterminateDrawable="@drawable/my_progress" />

  2、自定义ProgressBar颜色

Android 常用控件自定义样式RadioButton、CheckBox、ProgressBar、

<?xml version="1.0" encoding="utf-8"?>

<rotate xmlns:android="http://schemas.android.com/apk/res/android"

    android:fromDegrees="0"

    android:pivotX="50%"

    android:pivotY="50%"

    android:toDegrees="360" >



    <shape

        android:innerRadiusRatio="3"

        android:shape="ring"

        android:thicknessRatio="8"

        android:useLevel="false" >

        <gradient

            android:centerColor="#FFFFFF"

            android:centerY="0.50"

            android:endColor="#FFFF00"

            android:startColor="#000000"

            android:type="sweep" //

            android:useLevel="false" />

    </shape>



</rotate>

  3、自定义horizontal进度条

  自定义ProgressBar横向样式进度条需要配置一个layer-list,其中包括3个item分别是background,secondaryProgress,progress分别用于表示ProgressBar的背景,次要进度(如:表示播放器缓冲的进度),进度的样式;

<?xml version="1.0" encoding="utf-8"?>

<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >



    <item android:id="@android:id/background">

        <shape>

            <corners android:radius="5dip" />



            <gradient

                android:angle="270"

                android:centerColor="#ff5a5d5a"

                android:centerY="0.75"

                android:endColor="#ff747674"

                android:startColor="#ff9d9e9d" />

        </shape>

    </item>

    <item android:id="@android:id/secondaryProgress">

        <clip>

            <shape>

                <corners android:radius="5dip" />



                <gradient

                    android:angle="270"

                    android:centerColor="#80ffb600"

                    android:centerY="0.75"

                    android:endColor="#a0ffcb00"

                    android:startColor="#80ffd300" />

            </shape>

        </clip>

    </item>

    <item android:id="@android:id/progress">

        <clip>

            <shape>

                <corners android:radius="5dip" />



                <gradient

                    android:angle="270"

                    android:endColor="#AEEEEE"

                    android:startColor="#FF3030" />

            </shape>

        </clip>

    </item>



</layer-list>

 

    <ProgressBar

        style="?android:attr/progressBarStyleHorizontal"

        android:layout_width="match_parent"

        android:layout_height="10dip"

        android:progress="20"

        android:max="100"

        android:progressDrawable="@drawable/pb_background"/>

Android 常用控件自定义样式RadioButton、CheckBox、ProgressBar、




未完待续...

你可能感兴趣的:(ProgressBar)