歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Android 點擊圖片切換(代碼與xml)

Android 點擊圖片切換(代碼與xml)

日期:2017/3/1 11:16:54   编辑:Linux編程

在css中<a 標簽可以通過偽類的方式實現鼠標略過,鼠標點擊前後的不同樣式,在Android,可以通過設置View的“android:background”屬性或在代碼中通過setBackgroundDrawable()方法設置點擊前後View的不同圖片。

下面簡單介紹下xml和代碼兩種方式:

1、xml 方式實現

1.1在res/drawable下新建一個xml 如 mybg.xml,具體內容如下:

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

1.2把view對應的android:background指向mybg,如

<TextView android:id="@+id/tvTest" android:background="@drawable/mybg" ...

2、代碼方式實現

StateListDrawable drawable = new StateListDrawable();
try {

drawable.addState(new int []{android.R.attr.state_focused, android.R.attr.state_enabled}, context.getResources().getDrawable(R.drawable.menu_focused));
drawable.addState(new int []{android.R.attr.state_pressed, android.R.attr.state_enabled}, context.getResources().getDrawable(R.drawable.menu_pressed));
drawable.addState(new int []{android.R.attr.state_checked, android.R.attr.state_enabled}, context.getResources().getDrawable(R.drawable.menu_clicked));
drawable.addState(new int []{android.R.attr.state_selected, android.R.attr.state_enabled}, context.getResources().getDrawable(R.drawable.menu_selected));
drawable.addState(new int []{}, context.getResources().getDrawable(R.drawable.menu_default));

} catch (Exception e) {
e.printStackTrace();
}

TextView view = new TextView(context);

view.setBackgroundDrawable(drawable);

部分view沒有selected效果,只有radioButton等才有該效果。

Copyright © Linux教程網 All Rights Reserved