This code demonstrates how to set or change the style of the ActionBar title in an Android application. The code achieves this by creating a custom TextView and setting its properties, such as text, layout parameters, gravity, appearance, text color, font family, and text style.
Here's a step-by-step breakdown of the code:
Import necessary libraries: The code starts by importing necessary libraries like
android.graphics.Color,android.graphics.Paint,android.graphics.Typeface, etc. These libraries are used to manipulate the visual aspects of the ActionBar title, such as color, font, and style.Create a custom TextView: The
actionBarCustomViewmethod creates a TextView instance and sets its properties. The text property is set to "ActionBar Title Style". The layout parameters of the TextView are set to match_parent width and wrap_content height. The gravity is set to center to center-align the title text within the ActionBar.Set text appearance, color, and font style: The code sets the text appearance of the TextView using
setTextAppearance. This method applies the default Material Design style for the ActionBar title. The text color is set to white usingsetTextColor. The font family is set to sans-serif usingtypeface. Additionally, the code underlines the title text usingpaintFlagsand sets the typeface to bold italic usingsetTypeface.Apply the custom view to the ActionBar: In the
onCreatemethod, the code checks if the support action bar is available. If it is, the following steps are performed:- Set the custom view created in
actionBarCustomViewmethod to the ActionBar usingcustomView. - Set the display options of the ActionBar to show custom content using
displayOptions. - Enable the display of the home button and the app logo using
setDisplayShowHomeEnabledandsetDisplayUseLogoEnabledmethods respectively. - Set the app logo using
setLogo.
- Set the custom view created in
In summary, this code snippet provides a way to customize the look and feel of the ActionBar title in an Android application by creating a custom TextView and applying various styling options to it. This can be useful for creating a unique visual identity for your app and enhancing the user experience.
package com.cfsuman.kotlintutorials
import android.graphics.Color
import android.graphics.Paint
import android.graphics.Typeface
import android.os.Bundle
import android.view.Gravity
import android.widget.TextView
import androidx.appcompat.app.ActionBar.DISPLAY_SHOW_CUSTOM
import androidx.appcompat.app.AppCompatActivity
import androidx.constraintlayout.widget.ConstraintLayout.LayoutParams
class MainActivity : AppCompatActivity() {
lateinit var context:MainActivity
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
// Get the context
context = this
// If the support action bar is available
supportActionBar?.apply {
// Show custom title in action bar
customView = actionBarCustomView()
// Action bar more settings
displayOptions = DISPLAY_SHOW_CUSTOM
setDisplayShowHomeEnabled(true)
setDisplayUseLogoEnabled(true)
setLogo(R.drawable.ic_action_help)
}
}
// Method generate custom view for action bar title
private fun actionBarCustomView():TextView{
return TextView(context).apply {
// Action bar title text
text = "ActionBar Title Style"
// Initialize layout parameters for text view
val params = LayoutParams(
LayoutParams.MATCH_PARENT,
LayoutParams.WRAP_CONTENT
)
// Apply layout params for text view
layoutParams = params
// Center align the text
gravity = Gravity.CENTER
// Title text appearance
setTextAppearance(
android.R.style
.TextAppearance_Material_Widget_ActionBar_Title
)
// Action bar title text color
setTextColor(Color.WHITE)
// Title font family
typeface = Typeface.SANS_SERIF
// Underline the title text
paintFlags = Paint.UNDERLINE_TEXT_FLAG
// Bold title text
// setTypeface(typeface,Typeface.BOLD)
// Italic title text
// setTypeface(typeface,Typeface.ITALIC)
// Bold italic title text
setTypeface(typeface,Typeface.BOLD_ITALIC)
}
}
}
<?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"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/rootLayout"
android:background="#DCDCDC" />
- android kotlin - Bitmap sepia effect
- android kotlin - Bitmap lighting color filter
- android kotlin - ThumbnailUtils example
- android kotlin - Base64 string to bitmap
- android kotlin - ImageView grayscale filter
- android kotlin - Bitmap invert colors
- android kotlin - Drawable tint programmatically
- android kotlin - Set image from drawable
- android kotlin - ActionBar title text size
- android kotlin - ActionBar title color
- android kotlin - ActionBar title padding left