当我的按钮被禁用时,我需要删除文本阴影效果,当按钮启用时,我需要再次添加此效果。
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>
答案 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);
}
}