Android:QQログインインターフェースを実装するために、ログインボタンはパスワードがある場合は緑色で表示され、パスワードがない場合は灰色で表示されます

写真が示すように

ここに画像の説明を挿入します
ここに画像の説明を挿入します

実際、それは非常に簡単です。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>

おすすめ

転載: blog.csdn.net/title71/article/details/114117843