In this tutorial, we’ll learn how to create a login screen in android and how to handle security when someone tries to make false attempts.
A login application is a screen that asks for your credentials to access a specific application. You may have noticed it while signing onto Linkedin, Snapchat, and other social media sites.
Contents
1 . What is Splash Screen
Splash screens are commonly used by applications to inform the user that the Program is loading. They inform you that a lengthy procedure is in the works. The loading status is sometimes shown via a progress bar within the splash screen.
2 . What is login Screen / How to create a login screens
The login screen is the web page or login page of a web/mobile application that requires user identification and authentication, which is done by entering a username and password combination on a regular basis.
4 . User Profile Screen
A user profile is a collection of settings and information about a specific person. It comprises important identifying information such as a person’s name, age, portrait photograph, and personal attributes such as experience or competence.
Preview:
File: activity_main.xml
–>Add the below-given code to your file activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="?android:attr/colorFocusedHighlight"
android:scrollbarSize="30sp"
tools:context=".MainActivity">
<ImageView
android:id="@+id/imageView"
android:layout_width="match_parent"
android:layout_height="270dp"
android:layout_marginTop="50dp"
android:src="@drawable/well"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/textView"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="116dp"
android:fontFamily="@font/bangers"
android:text="Join Us Now"
android:textAlignment="center"
android:textSize="70sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/imageView" />
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="sans-serif-medium"
android:text="Welcome to Our Community"
android:textSize="20sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textView" />
</androidx.constraintlayout.widget.ConstraintLayout>
File: activity_login.xml
–> Create a New Empty Activity “Login” and Add the below-given code to your file activity_login.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#E3B476"
android:orientation="vertical"
android:padding="20dp"
tools:context=".Login">
<View
android:layout_width="wrap_content"
android:layout_height="100dp"/>
<TextView
android:id="@+id/logoName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="@font/bungee"
android:text="Hello there, Welcome Back"
android:textColor="@color/black"
android:textSize="40sp" />
<TextView
android:id="@+id/slogoName"
android:layout_width="wrap_content"
android:layout_height="26dp"
android:fontFamily="@font/antic"
android:text="Sign In to continue"
android:textColor="@color/black"
android:textSize="20sp" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:layout_marginBottom="20dp"
android:orientation="vertical">
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/username"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Username"
android:textColorHint="@color/black"
app:hintTextColor="@color/black">
<com.google.android.material.textfield.TextInputEditText
android:layout_width="match_parent"
android:layout_height="wrap_content">
</com.google.android.material.textfield.TextInputEditText>
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/password"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Password"
android:textColorHint="@color/black"
app:hintTextColor="@color/black"
app:passwordToggleEnabled="true">
<com.google.android.material.textfield.TextInputEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textPassword">
</com.google.android.material.textfield.TextInputEditText>
</com.google.android.material.textfield.TextInputLayout>
<Button
android:layout_width="200dp"
android:layout_height="wrap_content"
android:layout_gravity="end"
android:layout_margin="5dp"
android:background="#00000000"
android:elevation="0dp"
android:text="Forgot Password" />
<Button
android:id="@+id/go1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:layout_marginBottom="5dp"
android:background="#000"
android:text="GO"
android:textColor="#fff"
app:backgroundTint="#100F0F" />
<Button
android:layout_width="match_parent"
android:id="@+id/SignIn"
android:layout_height="wrap_content"
android:layout_gravity="end"
android:layout_margin="5dp"
android:background="#00000000"
android:text="New User? SIGN UP"
android:textColor="#000" />
</LinearLayout>
</LinearLayout>
File: activity_sign_up.xml
–> Create a New Empty Activity “SignUp” and Add the below-given code to your file activity_sign_up .xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="#E3B476"
android:padding="20dp"
tools:context=".SignUp">
<ImageView
android:layout_width="322dp"
android:layout_height="100dp"
android:src="@drawable/sm"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:fontFamily="@font/bungee"
android:text="Welcome"
android:textAlignment="center"
android:layout_gravity="center_horizontal"
android:textColor="@color/black"
android:textSize="30sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="sans-serif-smallcaps"
android:text="Register here..."
android:textColor="#153ec2"
android:textSize="18sp"
/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_marginTop="20dp"
android:layout_marginBottom="20dp">
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/name"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="NAME"
android:textColorHint="@color/black"
app:hintTextColor="@color/black">
<com.google.android.material.textfield.TextInputEditText
android:layout_width="match_parent"
android:layout_height="wrap_content">
</com.google.android.material.textfield.TextInputEditText>
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/username"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Username"
app:counterMaxLength="15"
app:counterEnabled="true"
android:textColorHint="@color/black"
app:hintTextColor="@color/black">
<com.google.android.material.textfield.TextInputEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="text">
</com.google.android.material.textfield.TextInputEditText>
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/email"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Email"
android:textColorHint="@color/black"
app:hintTextColor="@color/black">
<com.google.android.material.textfield.TextInputEditText
android:layout_width="match_parent"
android:inputType="textEmailAddress"
android:layout_height="wrap_content">
</com.google.android.material.textfield.TextInputEditText>
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/phone"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Phone Number"
android:textColorHint="@color/black"
app:hintTextColor="@color/black"
>
<com.google.android.material.textfield.TextInputEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="number">
</com.google.android.material.textfield.TextInputEditText>
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/password"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Password"
android:textColorHint="@color/black"
app:hintTextColor="@color/black"
app:passwordToggleEnabled="true">
<com.google.android.material.textfield.TextInputEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textPassword">
</com.google.android.material.textfield.TextInputEditText>
</com.google.android.material.textfield.TextInputLayout>
<Button
android:id="@+id/go"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:layout_marginBottom="5dp"
android:text="GO"
android:textColor="#fff"
app:backgroundTint="#153ec2" />
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:layout_marginBottom="5dp"
android:background="#00000000"
android:text="Already have an acocunt ? Login"
android:textColor="#130F0F"
android:textSize="12sp"
app:backgroundTint="#100F0F" />
</LinearLayout>
</LinearLayout>
File: activity_user_profile.xml
–> Create a New Empty Activity “UserProfile” and Add the below-given code to your file activity_user_profile.xml
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".UserProfile">
<LinearLayout
android:layout_width="match_parent"
android:orientation="vertical"
android:layout_height="match_parent">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="300dp"
android:background="#fece2f"
android:padding="20dp">
<ImageView
android:id="@+id/profile"
android:layout_width="100dp"
android:layout_height="100dp"
android:scaleType="center"
android:layout_centerVertical="true"
android:src="@drawable/lg" />
<TextView
android:id="@+id/full_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginLeft="10dp"
android:layout_toRightOf="@+id/profile"
android:fontFamily="@font/bungee"
android:includeFontPadding="false"
android:text="Developers Dome"
android:textSize="30sp" />
<TextView
android:id="@+id/last_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/full_name"
android:layout_marginLeft="10dp"
android:layout_toRightOf="@+id/profile"
android:fontFamily="@font/antic"
android:includeFontPadding="false"
android:text="Software Engineer"
android:textSize="15sp" />
</RelativeLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="-100dp"
android:padding="20dp">
<com.google.android.material.card.MaterialCardView
android:layout_width="0dp"
android:layout_height="125dp"
android:layout_margin="10dp"
android:layout_weight="1"
app:cardBackgroundColor= "#fece2f"
>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="5dp">
<ImageView
android:layout_width="30dp"
android:layout_height="30dp"
android:layout_centerHorizontal="true"
android:src="@drawable/ic_launcher_background" />
<TextView
android:id="@+id/payment_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:fontFamily="@font/bungee"
android:includeFontPadding="false"
android:text="$444"
android:textSize="20sp" />
<TextView
android:id="@+id/detail_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/payment_label"
android:layout_centerHorizontal="true"
android:includeFontPadding="false"
android:text="$456"
android:textSize="10sp" />
</RelativeLayout>
</com.google.android.material.card.MaterialCardView>
<com.google.android.material.card.MaterialCardView
android:layout_width="0dp"
android:layout_height="125dp"
android:layout_margin="10dp"
android:layout_weight="1"
app:cardBackgroundColor= "#fece2f"
>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="5dp">
<ImageView
android:layout_width="30dp"
android:layout_height="30dp"
android:layout_centerHorizontal="true"
android:src="@drawable/ic_launcher_background" />
<TextView
android:id="@+id/payment_label2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:fontFamily="@font/bungee"
android:includeFontPadding="false"
android:text="$555"
android:textSize="20sp" />
<TextView
android:id="@+id/detail_label2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/payment_label2"
android:layout_centerHorizontal="true"
android:includeFontPadding="false"
android:text="$456"
android:textSize="10sp" />
</RelativeLayout>
</com.google.android.material.card.MaterialCardView>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="20dp">
<com.google.android.material.textfield.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:hint="Name">
<com.google.android.material.textfield.TextInputEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Sagar Paliwal">
</com.google.android.material.textfield.TextInputEditText>
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:hint="password">
<com.google.android.material.textfield.TextInputEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="****1234">
</com.google.android.material.textfield.TextInputEditText>
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:hint="Mobile Number">
<com.google.android.material.textfield.TextInputEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="1234567890">
</com.google.android.material.textfield.TextInputEditText>
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:hint="Email">
<com.google.android.material.textfield.TextInputEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="abcd@gmail.com">
</com.google.android.material.textfield.TextInputEditText>
</com.google.android.material.textfield.TextInputLayout>
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Update"
android:fontFamily="@font/antic"
android:background="#fece2f"/>
</LinearLayout>
</LinearLayout>
</ScrollView>
File : Top_animation.xml
–> Create a folder for animation –> res/New/ Android Resource directory / Resource type: anim -> ok after that create a new file in it for animation and Add the below given code to your file.
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:fromXDelta="0%"
android:fromYDelta="-100%"
android:duration="1000"/>
<alpha
android:fromAlpha="0.1"
android:toAlpha="1.0"
android:duration="1000"/>
</set>
File: Bottom_navigation.xml
–> Create another file for bottom animation in res/anim folder –> create a new file in it and Add the below-given code to your file.
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:fromXDelta="0%"
android:fromYDelta="100%"
android:duration="1000"/>
<alpha
android:fromAlpha="0.1"
android:toAlpha="1.0"
android:duration="1000"/>
</set>
File: themes.xml
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools">
<style name="Theme.Animaton1" parent="Theme.MaterialComponents.DayNight.NoActionBar">
<!-- Primary brand color. -->
<item name="colorPrimary">@color/purple_500</item>
<item name="colorPrimaryVariant">@color/purple_700</item>
<item name="colorOnPrimary">@color/white</item>
<!-- Secondary brand color. -->
<item name="colorSecondary">@color/teal_200</item>
<item name="colorSecondaryVariant">@color/teal_700</item>
<item name="colorOnSecondary">@color/black</item>
<!-- Status bar color. -->
<item name="android:statusBarColor" tools:targetApi="l">?attr/colorPrimaryVariant</item>
<item name="android:windowContentTransitions">true</item>
<!-- Customize your theme here. -->
</style>
</resources>
File: MainActivity.kt
–>Add the below-given code to your file MainActivity.kt
package com.example.animaton1
import android.content.Intent
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.os.Handler
import android.view.View
import android.view.animation.AnimationUtils
import android.widget.ImageView
import android.widget.TextView
class MainActivity : AppCompatActivity() {
private val SPLASH_SCREEN=3000
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
window.decorView.systemUiVisibility = View.SYSTEM_UI_FLAG_FULLSCREEN
actionBar?.hide()
val topAnim=AnimationUtils.loadAnimation(this,R.anim.top_animation)
val bottomAnim=AnimationUtils.loadAnimation(this,R.anim.bottom_animation)
val image=findViewById<ImageView>(R.id.imageView)
val logo=findViewById<TextView>(R.id.textView)
val slogan=findViewById<TextView>(R.id.textView2)
image.animation=topAnim
logo.animation=bottomAnim
slogan.animation=bottomAnim
val handler = Handler()
handler.postDelayed(Runnable {
val intent=Intent(this,Login::class.java)
startActivity(intent)
finish()
}, SPLASH_SCREEN.toLong())
}
}
File: Login.kt
–>Add the below-given code to your file Login.kt
package com.example.animaton1
import android.content.Intent
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.view.View
import android.widget.Button
class Login : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_login)
window.decorView.systemUiVisibility = View.SYSTEM_UI_FLAG_FULLSCREEN
actionBar?.hide()
findViewById<Button>(R.id.SignIn).setOnClickListener {
val intent = Intent(this, SignUp::class.java)
startActivity(intent)
}
findViewById<Button>(R.id.go1).setOnClickListener {
val intent = Intent(this, UserProfile::class.java)
startActivity(intent)
}
}
}
File : SignUp.kt
–>keep it as it is
package com.example.animaton1
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.view.View
import android.widget.Button
import android.widget.EditText
import android.widget.Toast
class SignUp : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_sign_up)
}
}
File: userProfile.kt
–>keep it as it is
package com.example.animaton1
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
class UserProfile : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_user_profile)
}
}
How to create a login screen in android studio ,How to create a login screen in android studio, How to create a login screen in android,How to create a login screen in android studio ,



