Skip to main content

Shake a view(edit text) on incorrect input at OTP,passwords,etc (Android)

Hello devs!

This is another short tutorial to show how to shake an Edit text view if the input is incorrect.
Note: The tutorial assumes that you have the basic knowledge about android development.



It involves the following steps:

1. Create the Edit text and cast it inside the onCreate.

EditText edittext=findViewById(R.id.edit_text);

Recommended:https://github.com/GoodieBag/Pinview

Optional- Put the edit text inside a dialog to take an input from the dialog.

2. Write an animation XML.
Here is an example: (shake.xml)
Courtesy:https://gist.github.com/simon-heinen/9795036


<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<rotate
android:duration="70"
android:fromDegrees="-5"
android:pivotX="50%"
android:pivotY="50%"
android:repeatCount="5"
android:repeatMode="reverse"
android:interpolator="@android:anim/linear_interpolator"
android:toDegrees="5" />
<translate
android:fromXDelta="-10"
android:toXDelta="10"
android:repeatCount="5"
android:repeatMode="reverse"
android:interpolator="@android:anim/linear_interpolator"
android:duration="70" />
</set>

Store this inside the anim folder in res.

3.Write the onClick function for a button and inside that, whenever a condition is true, use the following lines:

Animation example= AnimationUtils.loadAnimation(context, R.anim.shake);
view.startAnimation(example);

In our case the condition would be something like,

if(edittext.getText().toString().equals("password"))
{
//action
}
else{
Animation example= AnimationUtils.loadAnimation(context, R.anim.shake);
edittext.startAnimation(example);

Toast.makeText(context,"Error",Toast.LENGTH_SHORT).show()
}


You can use different animations according to your need.
That's all folks! Hope it helps..


Comments

Popular posts from this blog

Create drop-down menu with image icons in Android

Hello devs! In this tutorial, we will be creating a drop-down menu on clicking a button in Android studio. Here is an image of how our menu is going to look: On clicking the hamburger icon, a vertical menu will appear with image icons of your choice. Above image is just to get an idea of what we are going to develop. Let's get started. Step 1: Open the layout file where you want the menu. Add the hamburger icon on an image button. <ImageButton android :layout_width= "50dp" android :layout_height= "50dp" android :src= "@drawable/ham" android :id= "@+id/ham" android :background= "#00000000" />  Note : #00000000 specifies 'transparent' background. Step 2: Add a vertical linear layout for the menu. Inside that, add nested linear layouts for horizontal rows. <LinearLayout android :layout_width= "wrap_content" android :layout_height= "wrap_content...

Create HTML pages using python and open automatically on execution.

This process of creation of HTML pages using python is similar to process of creation of any other file. To automatically open the pages after execution, we will use selenium webdriver. Following are the steps: 1. Open any text editor and create a python file with .py extension. 2. Import selenium packages. (Make sure you download them first.) For downloading on Ubuntu, use these commands in terminal: $ sudo apt-get install python-pip $ sudo pip install selenium Import: from selenium import webdriver 3. Write the following to create HTML file on execution. f = open ( ' helloworld.html ' , ' w ' ) 4. In order to write in this file, use the following code: f.write( """ <!DOCTYPE HTML> < html > < header > < title > This is title </ title > </ header > < body > Hello world </ body > </ html > """) 5. Close command : f.close() 6. Use the...

Convert List of user-defined datatype to String and back into List Java

There are times when it is necessary to convert a list of user-defined objects to string and later on retrieve it as a list in its original form. Example: like storing it into a Redis cache . How do we do that?  ObjectMapper Steps: 1. ObjectMapper objectMapper = new ObjectMapper(); First, initialize ObjectMapper. 2. List<YourClass> listObj ; Create and initialize your list of user-defined object. where, YourClass is a class having multiple variables. Example - class YourClass{ String abc; String xyz; } 3.  String convertedStr = objectMapper.writeValueAsString(listObj); This is the string conversion of the list. 4.  listObj = objectMapper.readValue(convertedStr, new TypeReference<List<YourClass>>(); And we are back with your list object.