Skip to content

Commit

Permalink
优化登录页面
Browse files Browse the repository at this point in the history
  • Loading branch information
zhujiang2 committed Aug 3, 2022
1 parent 15eb036 commit 512b855
Show file tree
Hide file tree
Showing 9 changed files with 158 additions and 31 deletions.
7 changes: 6 additions & 1 deletion .idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

41 changes: 40 additions & 1 deletion app/src/main/java/com/zj/play/main/login/LoginActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,11 @@ import android.animation.Animator
import android.animation.ObjectAnimator
import android.content.Context
import android.content.Intent
import android.text.Editable
import android.text.TextUtils
import android.text.TextWatcher
import android.text.method.HideReturnsTransformationMethod
import android.text.method.PasswordTransformationMethod
import android.view.View
import android.view.animation.OvershootInterpolator
import androidx.activity.viewModels
Expand All @@ -19,7 +23,7 @@ import com.zj.play.main.MainActivity
import dagger.hilt.android.AndroidEntryPoint

@AndroidEntryPoint
class LoginActivity : BaseActivity(), View.OnClickListener {
class LoginActivity : BaseActivity(), View.OnClickListener, TextWatcher {

private lateinit var binding: ActivityLoginBinding
private val viewModel by viewModels<LoginViewModel>()
Expand All @@ -35,6 +39,11 @@ class LoginActivity : BaseActivity(), View.OnClickListener {
override fun initView() {
binding.loginButton.setOnClickListener(this)
binding.loginTvRegister.setOnClickListener(this)
binding.loginPassNumberClear.setOnClickListener(this)
binding.loginPassNumberVisible.setOnClickListener(this)
binding.loginPassNumberEdit.addTextChangedListener(this)
binding.loginPassNumberEdit.transformationMethod =
PasswordTransformationMethod.getInstance()
viewModel.state.observe(this) {
when (it) {
Logging -> {
Expand All @@ -60,6 +69,24 @@ class LoginActivity : BaseActivity(), View.OnClickListener {
R.id.loginButton -> {
loginOrRegister()
}
R.id.loginPassNumberClear -> {
binding.loginPassNumberEdit.setText("")
}
R.id.loginPassNumberVisible -> {
val transformationMethod = binding.loginPassNumberEdit.transformationMethod
if (transformationMethod is PasswordTransformationMethod) {
binding.loginPassNumberEdit.transformationMethod =
HideReturnsTransformationMethod.getInstance()
binding.loginPassNumberVisible.setColorFilter(getColor(R.color.colorLoading))
} else {
binding.loginPassNumberEdit.transformationMethod =
PasswordTransformationMethod.getInstance()
binding.loginPassNumberVisible.setColorFilter(getColor(R.color.text_color_black))
}
binding.loginPassNumberEdit.setSelection(
binding.loginPassNumberEdit.text.toString().trim().length
)
}
}
}

Expand Down Expand Up @@ -116,6 +143,18 @@ class LoginActivity : BaseActivity(), View.OnClickListener {
binding.loginInputElements.isVisible = !visible
}

override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {

}

override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {

}

override fun afterTextChanged(s: Editable?) {
binding.loginPassNumberClear.isVisible = !s.isNullOrEmpty()
}

companion object {
fun actionStart(context: Context) {
val intent = Intent(context, LoginActivity::class.java)
Expand Down
12 changes: 12 additions & 0 deletions app/src/main/res/drawable/ic_eye.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="@dimen/dp_18"
android:height="@dimen/dp_18"
android:viewportWidth="1024"
android:viewportHeight="1024">
<path
android:fillColor="#FF000000"
android:pathData="M942.2,486.2C847.4,286.5 704.1,186 512,186c-192.2,0 -335.4,100.5 -430.2,300.3 -7.7,16.2 -7.7,35.2 0,51.5C176.6,737.5 319.9,838 512,838c192.2,0 335.4,-100.5 430.2,-300.3 7.7,-16.2 7.7,-35 0,-51.5zM512,766c-161.3,0 -279.4,-81.8 -362.7,-254C232.6,339.8 350.7,258 512,258c161.3,0 279.4,81.8 362.7,254C791.5,684.2 673.4,766 512,766z"/>
<path
android:fillColor="#FF000000"
android:pathData="M508,336c-97.2,0 -176,78.8 -176,176s78.8,176 176,176 176,-78.8 176,-176 -78.8,-176 -176,-176zM508,624c-61.9,0 -112,-50.1 -112,-112s50.1,-112 112,-112 112,50.1 112,112 -50.1,112 -112,112z"/>
</vector>
52 changes: 41 additions & 11 deletions app/src/main/res/layout-land/activity_login.xml
Original file line number Diff line number Diff line change
Expand Up @@ -67,23 +67,53 @@
android:textSize="@dimen/sp_14"
tools:ignore="TextFields" />

<EditText
android:id="@+id/loginPassNumberEdit"
<LinearLayout
android:layout_width="@dimen/dp_300"
android:layout_height="@dimen/dp_35"
android:layout_gravity="center"
android:layout_marginHorizontal="@dimen/dp_35"
android:layout_marginTop="@dimen/dp_10"
android:background="@drawable/bg_edittext"
android:hint="@string/enter_password"
android:importantForAutofill="no"
android:lines="1"
android:paddingHorizontal="@dimen/dp_5"
android:singleLine="true"
android:textColor="@color/text_color_black"
android:textColorHint="@color/plain"
android:textSize="@dimen/sp_14"
tools:ignore="TextFields" />
android:orientation="horizontal">

<EditText
android:id="@+id/loginPassNumberEdit"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="#00000000"
android:hint="@string/enter_password"
android:importantForAutofill="no"
android:inputType="textEmailAddress"
android:lines="1"
android:paddingHorizontal="@dimen/dp_5"
android:singleLine="true"
android:textColor="@color/text_color_black"
android:textColorHint="@color/plain"
android:textSize="@dimen/sp_14"
tools:ignore="TextFields" />

<ImageView
android:id="@+id/loginPassNumberClear"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:paddingHorizontal="@dimen/dp_3"
android:src="@drawable/ic_close"
android:tint="@color/text_color_black"
android:visibility="gone"
tools:ignore="ContentDescription,UseAppTint" />

<ImageView
android:id="@+id/loginPassNumberVisible"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:paddingHorizontal="@dimen/dp_3"
android:src="@drawable/ic_eye"
android:tint="@color/text_color_black"
tools:ignore="ContentDescription,UseAppTint" />

</LinearLayout>


<TextView
android:id="@+id/loginTvRegister"
Expand Down
51 changes: 40 additions & 11 deletions app/src/main/res/layout/activity_login.xml
Original file line number Diff line number Diff line change
Expand Up @@ -65,22 +65,51 @@
android:textSize="@dimen/sp_14"
tools:ignore="TextFields" />

<EditText
android:id="@+id/loginPassNumberEdit"
<LinearLayout
android:layout_width="match_parent"
android:layout_height="@dimen/dp_35"
android:layout_marginHorizontal="@dimen/dp_35"
android:layout_marginTop="@dimen/dp_10"
android:background="@drawable/bg_edittext"
android:hint="@string/enter_password"
android:importantForAutofill="no"
android:lines="1"
android:paddingHorizontal="@dimen/dp_5"
android:singleLine="true"
android:textColor="@color/text_color"
android:textColorHint="@color/plain"
android:textSize="@dimen/sp_14"
tools:ignore="TextFields" />
android:orientation="horizontal">

<EditText
android:id="@+id/loginPassNumberEdit"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="#00000000"
android:hint="@string/enter_password"
android:importantForAutofill="no"
android:inputType="textEmailAddress"
android:lines="1"
android:paddingHorizontal="@dimen/dp_5"
android:singleLine="true"
android:textColor="@color/text_color"
android:textColorHint="@color/plain"
android:textSize="@dimen/sp_14"
tools:ignore="TextFields" />

<ImageView
android:id="@+id/loginPassNumberClear"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:paddingHorizontal="@dimen/dp_3"
android:src="@drawable/ic_close"
android:tint="@color/text_color_black"
android:visibility="gone"
tools:ignore="ContentDescription,UseAppTint" />

<ImageView
android:id="@+id/loginPassNumberVisible"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:paddingHorizontal="@dimen/dp_3"
android:src="@drawable/ic_eye"
android:tint="@color/text_color_black"
tools:ignore="ContentDescription,UseAppTint" />

</LinearLayout>

<TextView
android:id="@+id/loginTvRegister"
Expand Down
10 changes: 5 additions & 5 deletions app/src/main/res/layout/layout_search_item.xml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
android:paddingVertical="@dimen/dp_5"
android:singleLine="true"
android:textColor="@color/white"
android:textSize="@dimen/dp_13" />
android:textSize="@dimen/sp_13" />

<LinearLayout
android:id="@+id/searchLlDelete"
Expand All @@ -27,10 +27,10 @@
tools:ignore="RtlHardcoded">

<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:scaleType="center"
android:src="@drawable/img_delet_picture" />
android:layout_width="@dimen/dp_12"
android:layout_height="@dimen/dp_12"
android:background="@drawable/ic_close"
android:scaleType="center" />

</LinearLayout>

Expand Down
4 changes: 2 additions & 2 deletions config.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@ ext {
compileSdkVersion : 32,
minSdkVersion : 23,
targetSdkVersion : 32,
versionCode : 28,
versionName : "4.5.0",
versionCode : 29,
versionName : "4.5.1",
testInstrumentationRunner: "androidx.test.runner.AndroidJUnitRunner",
consumerProguardFiles : 'consumer-rules.pro',
]
Expand Down
Binary file not shown.
12 changes: 12 additions & 0 deletions core/src/main/res/drawable/ic_close.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="@dimen/dp_18"
android:height="@dimen/dp_18"
android:viewportWidth="1024"
android:viewportHeight="1024">
<path
android:fillColor="#FF000000"
android:pathData="M512,128C300.8,128 128,300.8 128,512s172.8,384 384,384 384,-172.8 384,-384S723.2,128 512,128zM512,832c-179.2,0 -320,-140.8 -320,-320s140.8,-320 320,-320 320,140.8 320,320S691.2,832 512,832z" />
<path
android:fillColor="#FF000000"
android:pathData="M672,352c-12.8,-12.8 -32,-12.8 -44.8,0L512,467.2 396.8,352C384,339.2 364.8,339.2 352,352S339.2,384 352,396.8L467.2,512 352,627.2c-12.8,12.8 -12.8,32 0,44.8s32,12.8 44.8,0L512,556.8l115.2,115.2c12.8,12.8 32,12.8 44.8,0s12.8,-32 0,-44.8L556.8,512l115.2,-115.2C684.8,384 684.8,364.8 672,352z" />
</vector>

0 comments on commit 512b855

Please sign in to comment.