动态删除/添加阴影效果

时间:2014-04-08 07:54:53

标签: android text shadow

当我的按钮被禁用时,我需要删除文本阴影效果,当按钮启用时,我需要再次添加此效果。

selector_btn.xml

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

<item
    android:drawable="@drawable/btn_disabled"
    android:state_enabled="false" />

<item
    android:drawable="@drawable/btn_pressed"
    android:state_pressed="true" />

<item
    android:drawable="@drawable/btn_default" />

styles.xml

    <style name="TextShadow">
    <item name="android:textColor">#ffffffff</item>
    <item name="android:shadowColor">#0D67B9</item>
    <item name="android:shadowRadius">2.0</item>
    <item name="android:shadowDy">-2.0</item>
</style>

<style name="BigButton" parent="TextShadow">
    <item name="android:background">@drawable/selector_btn</item>
</style>

1 个答案:

答案 0 :(得分:1)

  You have make 2 defferent styles for enable and disable  condition and apply it to    textview when it disable or vise versa ...                     
            <style name="TextShadow_disable">
              <item name="android:textColor">#ffffffff</item>
               <item name="android:shadowColor">#0D67B9</item>
              <item name="android:shadowRadius">0</item>
             <item name="android:shadowDy">0</item>
              </style>
             <style name="TextShadow_enable">
              <item name="android:textColor">#ffffffff</item>
             <item name="android:shadowColor">#0D67B9</item>
             <item name="android:shadowRadius">2.0</item>
             <item name="android:shadowDy">-2.0</item>
            </style>

          textstyle = (TextView) findViewById(R.id.mytext);
          textstyle.setOnClickListener(new OnClickListener() {

                @Override
                public void onClick(View v) {
                    getTextStyle();

                }
            });

记下此方法以检查启用禁用;

     public void  getTextStyle()  {
           if(textstyle.isEnabled()){
                 textstyle.setTextAppearance(this, R.style.TextShadow_enable);
                }
             else{
                   textstyle.setTextAppearance(this, R.style.TextShadow_disable);
                }
          }