XML自定義按鈕樣子-點選切換圖片
阿新 • • 發佈:2019-02-09
自定義按鈕
樣本圖:
佈局layout-activity_main.xml
a.xml<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="zenglei.com.zawu.MainActivity"> <Button android:text="Button" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@drawable/a"/> </RelativeLayout>
注:android:state_pressed="true ---- 這裡代表是,當點選的時候反應<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true" android:drawable="@drawable/register_bg_press"> </item> <item android:drawable="@drawable/register_bg_normal"> </item> </selector>
android:drawable="@drawable/register_bg_press"-----這裡管理的樣子ID
第二步,設定樣子
register_bg_press.xml
register_bg_normal<?xml version="1.0" encoding="utf-8"?> <shape android:shape="rectangle" xmlns:android="http://schemas.android.com/apk/res/android"> <corners android:radius="30dp"></corners> <solid android:color="#55000000"></solid> </shape>
<?xml version="1.0" encoding="utf-8"?>
<shape
android:shape="rectangle"
xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="30dp"></corners>
<solid android:color="#33000000"></solid>
</shape>
android:shape=""; | rectandle---矩形 |
ring---成環形 | |
oval---橢圓形 | |
line---線 | |
android:radius="30dp" | 半徑 |
solid | 固體 |
點選切換圖片
效果圖:
這是layout佈局:activity_mian.xml-------drawableRight:這是狀態選擇器
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="zenglei.com.demoyes.MainActivity">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="以下是效果圖"/>
<TextView
android:id="@+id/item_match_friend_like"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawableRight="@drawable/like_bg_selector"
/>
</LinearLayout>
like_bg_selector:中的程式碼------android:state_selected="true",當被點選的時候。
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_selected="true" android:drawable="@mipmap/icon_post_like"></item>
<item android:drawable="@mipmap/icon_post_unlike_night"></item>
</selector>
弄完這個,然後就監聽一下事件。這裡採用常用的onclicklister方法------setSelected為true與false是為可以顯示撤銷的方法。
private boolean isLike = false;
mItemMatchFriendLike = (TextView) findViewById(R.id.item_match_friend_like);
mItemMatchFriendLike.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
isList = !isList;
if (isList) {
mItemMatchFriendLike.setSelected(true);
}else {
mItemMatchFriendLike.setSelected(false);
}
}
});
}