Android Fade In/Out in Kotlin - GeeksforGeeks

28 Oct, 2021
In Android Animations are the visuals that are added to make the user interface more interactive, clear and good looking. Fade In and Fade out animations are used to modify the appearance of any view over a set interval of time so that user can be notified about the changes that are occurring in our application. In this article we will be discussing how to create a Fade In/Out animation in Kotlin .
 
First step is to create a new Project in Android Studio. For this follow these steps: 
Click on File, then New and then New Project and give name whatever you like
Then, select Kotlin language Support and click next button.
Select minimum SDK, whatever you need
Select Empty activity and then click finish.
After that, we need to design our layout. For that we need to work with the XML file. Go to app > res > layout and paste the following code: 
 
XML
<?xml version="1.0" encoding="utf-8"?><RelativeLayout 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"              tools:context=".MainActivity" android:orientation="vertical">     <TextView            android:id="@+id/textView"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:text="GeeksForGeeks"            android:layout_centerInParent="true"            android:textSize="30sp"            android:textStyle="bold" />     <Button            android:id="@+id/fade_in"            android:layout_width="100dp"            android:layout_height="wrap_content"            android:text="Fade In"            android:layout_marginTop="140dp"            android:layout_marginLeft="100dp" />    <Button            android:id="@+id/fade_out"            android:layout_width="100dp"            android:layout_height="wrap_content"            android:layout_marginTop="140dp"            android:layout_toRightOf="@+id/fade_in"            android:text="Fade Out"            android:textAllCaps="false" /> </RelativeLayout>
In this folder, we will be adding the XML files which will be used to produce the animations. For this to happen, go to app/res right click and then select, Android Resource Directory and name it as anim. Again right click this anim folder and select Animation resource file and name it as fade_in. Similarly, also create fade_out.xml and paste the following code.fade_in.xml  
XML
<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android">    android:interpolator="@android:anim/linear_interpolator">    <alpha        android:duration="2000"        android:fromAlpha="0.1"        android:toAlpha="1.0" /></set>
fade_out.xml  
XML
<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android">    android:interpolator="@android:anim/linear_interpolator">    <alpha        android:duration="2000"        android:fromAlpha="1.0"        android:toAlpha="0.1" /></set>
Open app/src/main/java/yourPackageName/MainActivity.kt and do the following changes: 
Java
package com.geeksforgeeks.myfirstKotlinapp import androidx.appcompat.app.AppCompatActivityimport android.os.Bundleimport android.os.Handlerimport android.view.Viewimport android.view.animation.AnimationUtilsimport kotlinx.android.synthetic.main.activity_main.* class MainActivity : AppCompatActivity() {     override fun onCreate(savedInstanceState: Bundle?) {        super.onCreate(savedInstanceState)        setContentView(R.layout.activity_main)         //setting button onClickListener        fade_in.setOnClickListener {        textView.visibility = View.VISIBLE        //loading our custom made animations        val animation = AnimationUtils.loadAnimation(this, R.anim.fade_in)        //starting the animation        textView.startAnimation(animation)    }    fade_out.setOnClickListener {        val animation = AnimationUtils.loadAnimation(this, R.anim.fade_out)        textView.startAnimation(animation)        //textview will be invisible after the specified amount        // of time elapses, here it is 1000 milliseconds        Handler().postDelayed({            textView.visibility = View.GONE        }, 1000)    }}}
XML
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android"          package="i.apps.fadeinout">     <application            android:allowBackup="true"            android:icon="@mipmap/ic_launcher"            android:label="@string/app_name"            android:roundIcon="@mipmap/ic_launcher_round"            android:supportsRtl="true"            android:theme="@style/AppTheme">        <activity android:name=".MainActivity">            <intent-filter>                <action android:name="android.intent.action.MAIN"/>                 <category android:name="android.intent.category.LAUNCHER"/>            </intent-filter>        </activity>    </application> </manifest>
ruhelaa48
Android-Animation
Kotlin Android
Picked
Android
Kotlin
Android
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Comments
Old Comments
How to Create and Add Data to SQLite Database in Android?
Broadcast Receiver in Android With Example
Android RecyclerView in Kotlin
Services in Android with Example
CardView in Android With Example
Broadcast Receiver in Android With Example
Android UI Layouts
Android RecyclerView in Kotlin
Services in Android with Example
Content Providers in Android with Example