当前位置:主页 > 移动开发 > Android代码 >

Android 中图片和按钮按下状态变化实例代码解析

时间:2020-12-18 02:31:16 | 栏目:Android代码 | 点击:

1、图片设置背景选择器,以便点按或设置选中与否,背景切换

res/drawable/selector_settings_item_back.xml 

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
  <item android:state_focused="true" android:drawable="@color/settingsSelectedItem"/> 
  <item android:state_pressed="true" android:drawable="@color/settingsSelectedItem"/> 
  <item android:state_selected="true" android:drawable="@color/settingsSelectedItem"/> 
  <item android:state_focused="false" android:drawable="@color/settingsItem"/> 
</selector > 

颜色值定义:

res/values/colors.xml 

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
  <color name="settingsItem">#ffffff</color> 
  <color name="settingsSelectedItem">#FFA500</color> 
</resources> 

2、圆角按钮,按下抬起切换背景,同时切换文字颜色

res/layout/activity_xxx.xml 

<Button 
  android:layout_width="wrap_content" 
  android:layout_height="wrap_content" 
  android:layout_weight="1" 
android:background="@drawable/selector_shape_corner_button" 
  android:text="审批中" android:textColor="@drawable/selector_font_style_corner_button" 
  android:textSize="13sp" 
  /> 

其中引用了 res/drawable/ 下的两个 selector ,

一个是背景图片随点按抬起状态进行切换,一个是文本颜色随点按抬起进行切换。

res/drawable/selector_shape_corner_button.xml 

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
  <item android:state_focused="true" android:drawable="@drawable/shape_corner_button_fill"/> 
  <item android:state_pressed="true" android:drawable="@drawable/shape_corner_button_fill"/> 
  <item android:state_selected="true" android:drawable="@drawable/shape_corner_button_fill"/> 
  <item android:state_focused="false" android:drawable="@drawable/shape_corner_button"/> 
</selector >
 res/drawable/selector_font_style_corner_button 

shape_corner_button.xml

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
  android:shape="rectangle"> 
  <corners 
    android:radius="5dp" /> 
  <solid 
    android:color="#001da1f2" /> 
  <stroke 
    android:width="1dp" 
    android:color="#1da1f2" /> 
</shape> 

shape_corner_button_fill.xml

<?xml version="1.0" encoding="utf-8"?> 
<shape 
xmlns:android="http://schemas.android.com/apk/res/android" 
  android:shape="rectangle"> 
  <corners 
    android:radius="5dp" /> 
  <solid 
    android:color="#ff1da1f2" /> 
  <stroke 
    android:width="1dp" 
    android:color="#1da1f2" /> 
</shape> 
<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
  <item android:state_focused="true" android:color="#ffffff"/> 
  <item android:state_pressed="true" android:color="#ffffff"/> 
  <item android:state_selected="true" android:color="#ffffff"/> 
  <item android:state_focused="false" android:color="#1da1f2"/> 
</selector > 

总结

您可能感兴趣的文章:

相关文章