Create Material Text Field in an android application: 10 minutes
Material
Text Field
android
application
- By Code solution
- Jan 20th, 2021
- 0 comments
- 0
Create Material Text Field in an android application using animation.
Creating New Project
- Create a new project in Android Studio from File ⇒ New Project. When selecting Empty Activity and proceed.
- Add materialtextfield dependency to your build.gradle and rebuild the project.
dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation 'com.android.support:appcompat-v7:27.1.1' implementation 'com.android.support.constraint:constraint-layout:1.0.2' testImplementation 'junit:junit:4.12' androidTestImplementation 'com.android.support.test:runner:1.0.1' androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1' implementation 'com.github.florent37:materialtextfield:1.0.7' }
Choosing the Colors
- Open colors.xml located under res ⇒ values and add the below color values.
colors.XML
<?xml version="1.0" encoding="utf-8"?> <resources> <color name="colorPrimary">#3F51B5</color> <color name="colorPrimaryDark">#303F9F</color> <color name="colorAccent">#FF4081</color> </resources>
- Open Style.xml located under res ⇒ values and add the below values.
<resources> <!-- Base application theme. --> <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <!-- Customize your theme here. --> <item name="colorPrimary">@color/colorPrimary</item> <item name="colorPrimaryDark">@color/colorPrimaryDark</item> <item name="colorAccent">@color/colorAccent</item> <item name="windowNoTitle">true</item> <item name="windowActionBar">false</item> </style> <style name="DrawerArrowStyle" parent="Widget.AppCompat.DrawerArrowToggle"> <item name="spinBars">true</item> <item name="color">@android:color/white</item> </style> </resources>
Create four XML layouts named activity_login.xml under res ⇒ layouts.
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#4644aa" android:orientation="vertical"> <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="#3FFF"/> <com.github.florent37.materialtextfield.MaterialTextField android:layout_width="300dp" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:layout_marginLeft="4dp" android:layout_marginRight="4dp" android:layout_marginTop="20dp" app:mtf_cardCollapsedHeight="4dp" app:mtf_hasFocus="false" app:mtf_image="@drawable/ic_email_black_24dp" app:mtf_openKeyboardOnFocus="true"> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="Email" android:maxLines="1" android:textColor="@android:color/white" android:textColorHint="@android:color/white" android:textSize="15sp" /> </com.github.florent37.materialtextfield.MaterialTextField> <com.github.florent37.materialtextfield.MaterialTextField android:layout_width="300dp" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:layout_marginLeft="4dp" android:layout_marginRight="4dp" android:layout_marginTop="20dp" app:mtf_cardCollapsedHeight="4dp" app:mtf_hasFocus="false" app:mtf_image="@drawable/ic_lock_outline_black_24dp" app:mtf_openKeyboardOnFocus="true"> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="Password" android:maxLines="1" android:textColor="@android:color/white" android:textColorHint="@android:color/white" android:textSize="15sp" /> </com.github.florent37.materialtextfield.MaterialTextField> </LinearLayout>
- Open MenuActivity.java and modify the code as below.
package textfeild.wappteh.com.textfeild; import android.graphics.Color; import android.support.v7.app.ActionBar; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.support.v7.widget.Toolbar; public class LoginActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_login); Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); toolbar.setTitleTextColor(Color.WHITE); final ActionBar supportActionBar = getSupportActionBar(); if (supportActionBar != null) { supportActionBar.setDisplayHomeAsUpEnabled(true); } } }
- Create other fragment pages like home, setting, profile, calendar
- After Finally open AndroidManifest.XML and make WelcomeActivity as launcher activity.
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="textfeild.wappteh.com.textfeild"> <uses-permission android:name="android.permission.INTERNET" /> <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=".LoginActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <meta-data android:name="io.fabric.ApiKey" android:value="29cbd600bb8183011201895a931db91e93f2d614" /> </application> </manifest>