如图所示
其实很简单,EditView有监听写入前写入后,我自己还傻不拉几的自己写监听,笑死
et_password = (EditText)findViewById(R.id.et_password);
btn_login = (LinearLayout) findViewById(R.id.btn_login);
et_password.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
//写入前判断是否有文字
if(et_password.getText().toString().equals("")){
btn_login.setBackground(getResources().getDrawable(R.drawable.round_corner_default));
}else {
btn_login.setBackground(getResources().getDrawable(R.drawable.round_corner));
}
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
//写入后判断是否有文字
if(et_password.getText().toString().equals("")){
btn_login.setBackground(getResources().getDrawable(R.drawable.round_corner_default));
}else {
btn_login.setBackground(getResources().getDrawable(R.drawable.round_corner));
}
}
});
登录按钮的布局,是上层是一个图片,下层一个布局,我设置的给布局换背景
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="30dp"
android:layout_marginTop="60dp"
android:layout_marginRight="30dp"
android:orientation="vertical">
<LinearLayout
android:id="@+id/btn_login"
android:layout_gravity="center"
android:gravity="center"
android:background="@drawable/round_corner"
android:layout_width="60dp"
android:layout_height="60dp">
<ImageView
android:layout_width="40dp"
android:layout_height="40dp"
android:src="@drawable/ic_next_login"
android:textColor="@color/white"></ImageView>
</LinearLayout>
</LinearLayout>
背景文件drawable/round_corner_default.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners android:radius="40dp"/>
<solid android:color="#cdcdcd" />
</shape>
背景文件drawable/round_corner.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners android:radius="40dp"/>
<solid android:color="#5ac9b4" />
</shape>