Hello Developers, Welcome to Jetpack Compose tutorials. In this tutorial, We are going to learn How to do Bold Italic Underline in Jetpack Compose Using Kotlin with Android Studio.
Page Contents
Bold, Italic & Underline Text in Jetpack Compose
First,
- Open Android Studio
- Create a new or open existing project
- Setup Project
build.gradle (project)
buildscript { ext { compose_ui_version = '1.4.0' } } // Top-level build file where you can add configuration options common to all sub-projects/modules. plugins { id 'com.android.application' version '7.4.2' apply false id 'com.android.library' version '7.4.2' apply false id 'org.jetbrains.kotlin.android' version '1.8.10' apply false }
build.gradle (module:app)
plugins { id 'com.android.application' id 'org.jetbrains.kotlin.android' } android { namespace 'com.techpassmaster.jetpackcomposeseries' compileSdk 33 defaultConfig { applicationId "com.techpassmaster.jetpackcomposeseries" minSdk 24 targetSdk 33 versionCode 1 versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" vectorDrawables { useSupportLibrary true } } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } } compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } kotlinOptions { jvmTarget = '1.8' } buildFeatures { compose true } composeOptions { kotlinCompilerExtensionVersion '1.4.4' } packagingOptions { resources { excludes += '/META-INF/{AL2.0,LGPL2.1}' } } } dependencies { implementation 'androidx.core:core-ktx:1.10.0' implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.6.1' implementation 'androidx.activity:activity-compose:1.7.0' implementation "androidx.compose.ui:ui:$compose_ui_version" implementation "androidx.compose.ui:ui-tooling-preview:$compose_ui_version" implementation 'androidx.compose.material:material:1.4.1' implementation 'androidx.appcompat:appcompat:1.6.1' testImplementation 'junit:junit:4.13.2' androidTestImplementation 'androidx.test.ext:junit:1.1.5' androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1' androidTestImplementation "androidx.compose.ui:ui-test-junit4:$compose_ui_version" debugImplementation "androidx.compose.ui:ui-tooling:$compose_ui_version" debugImplementation "androidx.compose.ui:ui-test-manifest:$compose_ui_version" implementation "org.jetbrains.kotlin:kotlin-script-runtime:1.8.20" }
After creating the project create 3 composable functions for BoldText, ItalicText, and UnderlineText.
BoldText @Composable Function
@Composable fun BoldText() { Text( text = "Hello World", fontWeight = FontWeight.Bold, fontSize = 30.sp ) }
ItalicText @Composable Function
@Composable fun ItalicText() { Text( text = "Hello World", fontStyle = FontStyle.Italic, fontSize = 30.sp ) }
UnderlineText @Composable Function
@Composable fun UnderlineText() { Text( text = "Text with UnderLine", textDecoration = TextDecoration.Underline, fontSize = 30.sp ) }
Complete code
package com.techpassmaster.jetpackcomposeseries import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.material.MaterialTheme import androidx.compose.material.Surface import androidx.compose.runtime.Composable import androidx.compose.material.* import androidx.compose.ui.Modifier import androidx.compose.ui.text.font.FontStyle import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextDecoration import androidx.compose.ui.unit.sp import com.techpassmaster.jetpackcomposeseries.ui.theme.JetpackComposeSeriesTheme class BoldItalicUnderlineActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent { JetpackComposeSeriesTheme { // A surface container using the 'background' color from the theme Surface( modifier = Modifier.fillMaxSize(), color = MaterialTheme.colors.background ) { // call BoldItalicUnderline composable function here BoldItalicUnderLineText() } } } } } @Composable fun BoldItalicUnderLineText() { // Here we are using Column for displaying a collection of composable // in a vertically sequenced format It's similar to a LinearLayout with // vertical orientation. Column { // Bold Text Text( text = "Hello World", fontWeight = FontWeight.Bold, fontSize = 30.sp ) // Italic Text Text( text = "Hello World", fontStyle = FontStyle.Italic, fontSize = 30.sp ) // UnderLine Text Text( text = "Text with UnderLine", textDecoration = TextDecoration.Underline, fontSize = 30.sp ) } }
In the above example, we’re using Column for displaying a collection of composable in a vertically sequenced format It’s similar to a LinearLayout with vertical orientation.
Output
You May Also Like ⇣
- Text in Jetpack Compose
- Text Padding in Jetpack Compose
- Clickable Text in Jetpack Compose
- Shapes in Jetpack Compose