使用xml写一个关于textSize的selector

来源:互联网 发布:使用数组储存1825 编辑:程序博客网 时间:2024/06/18 14:47

本身并没有这样的方法。selector作为根标签只能在animator和drawable资源文件夹下使用。


step1:既然能在animator下创建,那么就用属性动画把字体大小从一个值变到另一个值,不也能达到想要的效果。

<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android">    <item android:state_selected="true">        <set>            <objectAnimator                android:duration="200"                android:propertyName="textSize"                android:valueFrom="4dp"                android:valueTo="4.8dp"                android:valueType="floatType"/>        </set>    </item>    <item android:state_selected="false">        <set>            <objectAnimator                android:duration="200"                android:propertyName="textSize"                android:valueFrom="4.8dp"                android:valueTo="4dp"                android:valueType="floatType"/>        </set>    </item></selector>

PS:这里不知为啥4dp的实际效果类似与12dp。

step2:在style中使用该selector。

<?xml version="1.0" encoding="utf-8"?><resources>    <style name="text_style">        <item name="android:layout_width">wrap_content</item>        <item name="android:layout_height">wrap_content</item>        <item name="android:textColor">@drawable/selector_text_color</item>        <item name="android:stateListAnimator">@animator/selector_text_size</item>    </style></resources>
但是android:stateListAnimator属性只能在values-v21及以上中使用,21以下版本可以另外指定textSize一个固定值。

    <style name="text_style">
        <item name="android:layout_width">wrap_content</item>        <item name="android:layout_height">wrap_content</item>        <item name="android:textColor">@drawable/selector_text_color</item>
<item name="android:textSize">12dp</item> </style>

step3:在textView或者其他控件中引用该style。


原创粉丝点击