现在的位置: 首页 > 综合 > 正文

使用shape自定义button状态

2019年01月04日 ⁄ 综合 ⁄ 共 2732字 ⁄ 字号 评论关闭

效果图:

normal状态:                                                                                                                                     pressed状态:

       

1. 关键文件 drawable下 btn_login_selecter.xml:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:state_pressed="true"> <!-- pressed the button status -->
<shape>

            <!-- 开始颜色="" 结束颜色="" 颜色渐变="" -->
            <gradient android:angle="270" android:endColor="#888888" android:startColor="#888888" />
            <!-- //渐变方向     按钮边缘="" 边缘宽="" -->
            <stroke android:width="1sp" android:color="#fad3cf" />
            <!-- //边缘颜色   按钮四个圆角="" -->
            <corners android:radius="30dp" />
            <!-- //半径    内边距="" 按钮文字和边缘距离="" -->
            <padding android:bottom="10dp" android:left="10dp" android:right="10dp" android:top="10dp" />
        </shape></item>
    <item android:state_focused="true"> <!-- get the focus button sttaus -->
<shape>
            <gradient android:angle="270" android:endColor="#ffc2b7" android:startColor="#ffc2b7" />

            <stroke android:width="1sp" android:color="#dcdcdc" />

            <corners android:radius="30dp" />

            <padding android:bottom="10dp" android:left="10dp" android:right="10dp" android:top="10dp" />
        </shape></item>
    <item> <!-- no focus the button status(the normal status button) -->
<shape>
            <gradient android:angle="270" android:endColor="#00000000" android:startColor="#00000000" />

            <stroke android:width="1sp" android:color="#fad3cf" />

            <corners android:radius="30dp" />

            <padding android:bottom="10dp" android:left="10dp" android:right="10dp" android:top="10dp" />
        </shape></item>

</selector>

2. activity_login.xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#eeeeee"
    android:orientation="vertical" >
    <Button 
        android:id="@+id/test_shape_btn"
        android:layout_width="match_parent"
        android:layout_height="50dip"
        android:layout_centerInParent="true"
        android:layout_marginLeft="60dip"
        android:layout_marginRight="60dip"
        android:background="@drawable/btn_login_selecter"
        />

</RelativeLayout>

3. Activity文件内容:

package com.jun.activity;

import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;

public class LoginActivity extends ActionBarActivity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_login);
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.login, menu);
		return true;
	}

	@Override
	public boolean onOptionsItemSelected(MenuItem item) {
		// Handle action bar item clicks here. The action bar will
		// automatically handle clicks on the Home/Up button, so long
		// as you specify a parent activity in AndroidManifest.xml.
		int id = item.getItemId();
		if (id == R.id.action_settings) {
			return true;
		}
		return super.onOptionsItemSelected(item);
	}
}

抱歉!评论已关闭.