Skip to main content

Posts

Showing posts with the label KTX

android kotlin ktx - Drawable to bitmap example

MainActivity.kt package com.example.jetpack import android.graphics.Bitmap import android.graphics.drawable.Drawable import android.os.Bundle import androidx.appcompat.app.AppCompatActivity import androidx.core.content.ContextCompat import androidx.core.graphics.drawable.toBitmap import kotlinx.android.synthetic.main.activity_main.* class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) // Image source // https://pixabay.com/photos/anemone-blue-flower-blossom-bloom-2396299/ // Get drawable from resource val drawable:Drawable? = ContextCompat.getDrawable(this,R.drawable.blue_flower) // Convert drawable to bitmap val bitmap:Bitmap? = drawable?.toBitmap() // Convert drawable to bitmap with specific width height val bitmap2:Bitmap? = drawable?.toBitmap( drawable.intrin...

android kotlin ktx - Set and update view margin programmatically

MainActivity.kt package com.example.jetpack import android.content.Context import android.os.Bundle import android.util.TypedValue import androidx.appcompat.app.AppCompatActivity import androidx.constraintlayout.widget.ConstraintLayout import androidx.core.view.* import kotlinx.android.synthetic.main.activity_main.* class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) // Set text view margins val params = textView.layoutParams as ConstraintLayout.LayoutParams params.setMargins(8.toDp(this)) textView.layoutParams = params button.setOnClickListener { // Update text view end/right margin params.updateMarginsRelative(end = 75.toDp(this)) textView.layoutParams = params } button2.setOnClickListener { // Update text view different margins ...

android kotlin ktx - Set and update view padding programmatically

MainActivity.kt package com.example.jetpack import android.content.Context import android.os.Bundle import android.util.TypedValue import androidx.appcompat.app.AppCompatActivity import androidx.core.view.ViewCompat import androidx.core.view.setPadding import androidx.core.view.updatePadding import kotlinx.android.synthetic.main.activity_main.* class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) // Set the text view padding relative ViewCompat.setPaddingRelative( textView, 5.toDp(this), 10.toDp(this), 15.toDp(this), 20.toDp(this) ) button.setOnClickListener { // Update text view bottom padding textView.updatePadding(bottom = 60.toDp(this)) } button2.setOnClickListener { // Set text view padding ...

android kotlin ktx - View to bitmap example

MainActivity.kt package com.example.jetpack import android.graphics.Bitmap import android.os.Bundle import androidx.appcompat.app.AppCompatActivity import androidx.core.view.drawToBitmap import kotlinx.android.synthetic.main.activity_main.* class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) button.setOnClickListener { // draw a bitmap from card view val b:Bitmap = cardView.drawToBitmap(Bitmap.Config.ARGB_8888) // show to generated bitmap to image view imageView.setImageBitmap(b) } } } activity_main.xml <?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" xmln...

android kotlin ktx - Scale bitmap keep aspect ratio example

MainActivity.kt package com.example.jetpack import android.graphics.Bitmap import android.graphics.BitmapFactory import android.os.Bundle import androidx.appcompat.app.AppCompatActivity import androidx.core.graphics.scale import kotlinx.android.synthetic.main.activity_main.* import kotlin.math.roundToInt class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) // image source //https://pixabay.com/photos/flower-flowers-quince-bush-spring-4853422/ // get bitmap from drawable resource val bitmap = BitmapFactory.decodeResource(resources,R.drawable.flower) button.setOnClickListener { imageView2.setImageBitmap(bitmap.scaleByWidth(700)) } button2.setOnClickListener { imageView2.setImageBitmap(bitmap.scaleByHeight(700)) } } } fun Bitmap.scaleByWidth(newWidt...

android kotlin ktx - Scale bitmap example

MainActivity.kt package com.example.jetpack import android.graphics.BitmapFactory import android.os.Bundle import androidx.appcompat.app.AppCompatActivity import androidx.core.graphics.scale import kotlinx.android.synthetic.main.activity_main.* class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) // get bitmap from drawable resource val bitmap = BitmapFactory.decodeResource(resources,R.drawable.cfsuman) // scale bitmap using android ktx val scaledBitmap = bitmap.scale( 300, // width 300, // height false // filter ) imageView.setImageBitmap(bitmap) imageView2.setImageBitmap(scaledBitmap) } } activity_main.xml <?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:andro...

android kotlin ktx - LeadingMarginSpan example

MainActivity.kt package com.example.jetpack import android.os.Bundle import android.text.style.LeadingMarginSpan import androidx.appcompat.app.AppCompatActivity import androidx.core.text.set import androidx.core.text.toSpannable import kotlinx.android.synthetic.main.activity_main.* class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val text = ("Lorem Ipsum is simply dummy text of the printing and" + " typesetting industry. Lorem Ipsum \n\nhas been the industry's" + " standard dummy text ever \n\nsince the 1500s, when an unknown" + " printer took a galley\n\n of type and scrambled" + " it to make a type specimen book.").toSpannable() // Leading margin span // int: the indent for the first line of t...

android kotlin ktx - DynamicDrawableSpan example

MainActivity.kt package com.example.jetpack import android.graphics.Bitmap import android.graphics.BitmapFactory import android.graphics.drawable.BitmapDrawable import android.graphics.drawable.Drawable import android.os.Bundle import android.text.style.DynamicDrawableSpan import androidx.appcompat.app.AppCompatActivity import androidx.core.graphics.scale import androidx.core.text.set import androidx.core.text.toSpannable import kotlinx.android.synthetic.main.activity_main.* class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val text = ("Lorem Ipsum is simply dummy text of the printing and" + " typesetting industry. Lorem Ipsum has been the industry's" + " standard dummy text ever since the 1500s, when an unknown" + " printer took a galley ...

android kotlin ktx - ImageSpan example

MainActivity.kt package com.example.jetpack import android.graphics.Bitmap import android.graphics.BitmapFactory import android.os.Bundle import android.text.style.ImageSpan import androidx.appcompat.app.AppCompatActivity import androidx.core.graphics.scale import androidx.core.text.set import androidx.core.text.toSpannable import kotlinx.android.synthetic.main.activity_main.* class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val text = ("Lorem Ipsum is simply dummy text of the printing and" + " typesetting industry. Lorem Ipsum has been the industry's" + " standard dummy text ever since the 1500s, when an unknown" + " printer took a galley of type and scrambled it" + " to make a type specimen book.").toSpa...

android kotlin ktx - IconMarginSpan example

MainActivity.kt package com.example.jetpack import android.graphics.Bitmap import android.graphics.BitmapFactory import android.os.Bundle import android.text.style.IconMarginSpan import androidx.appcompat.app.AppCompatActivity import androidx.core.graphics.scale import androidx.core.text.set import androidx.core.text.toSpannable import kotlinx.android.synthetic.main.activity_main.* class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val text = ("Lorem Ipsum is simply dummy text of the printing and" + " typesetting industry. Lorem Ipsum has been the industry's" + " standard dummy text ever since the 1500s, when an unknown" + " printer took a galley of type and scrambled it" + " to make a type specimen book.").toSpan...

android kotlin ktx - MaskFilterSpan blur example

MainActivity.kt package com.example.jetpack import android.graphics.BlurMaskFilter import android.os.Bundle import android.text.style.MaskFilterSpan import androidx.appcompat.app.AppCompatActivity import androidx.core.text.set import androidx.core.text.toSpannable import kotlinx.android.synthetic.main.activity_main.* class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val text = ("MaskFilterSpan Blur Normal." + "\n\nMaskFilterSpan Blur Inner." + "\n\nMaskFilterSpan Blur Outer." + "\n\nMaskFilterSpan Blur Solid." ).toSpannable() // Mask filter span blur text[0..27] = MaskFilterSpan(BlurMaskFilter(5F,BlurMaskFilter.Blur.NORMAL)) text[29..56] = MaskFilterSpan(BlurMaskFilter(15F,BlurMaskFilter.Blur.INNER)) ...

android kotlin ktx - QuoteSpan example

MainActivity.kt package com.example.jetpack import android.content.Context import android.graphics.Color import android.os.Build import android.os.Bundle import android.text.style.QuoteSpan import androidx.appcompat.app.AppCompatActivity import androidx.core.text.set import androidx.core.text.toSpannable import kotlinx.android.synthetic.main.activity_main.* class MainActivity : AppCompatActivity() { private lateinit var context:Context override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) context = this val text = ("Lorem Ipsum is simply dummy text of the printing and" + " typesetting industry.\n\nLorem Ipsum has been the industry's" + " standard dummy text ever since the 1500s, \n\nwhen an unknown" + " printer took a galley of type and scrambled it" + ...

android kotlin ktx - URlSpan click event example

MainActivity.kt package com.example.jetpack import android.content.Context import android.graphics.Color import android.os.Bundle import android.text.method.LinkMovementMethod import android.text.style.URLSpan import android.view.View import android.widget.Toast import androidx.appcompat.app.AppCompatActivity import androidx.core.text.set import androidx.core.text.toSpannable import kotlinx.android.synthetic.main.activity_main.* class MainActivity : AppCompatActivity() { private lateinit var context:Context override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) context = this val text = ("Lorem Ipsum is simply dummy text of the printing and" + " typesetting industry. Lorem Ipsum has been the industry's" + " standard dummy text ever since the 1500s, when an unknown" + " printer...

android kotlin ktx - ClickableSpan example

MainActivity.kt package com.example.jetpack import android.content.Context import android.os.Bundle import android.text.method.LinkMovementMethod import android.text.style.ClickableSpan import android.view.View import android.widget.Toast import androidx.appcompat.app.AppCompatActivity import androidx.core.text.set import androidx.core.text.toSpannable import kotlinx.android.synthetic.main.activity_main.* class MainActivity : AppCompatActivity() { private lateinit var context:Context override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) context = this val text = ("Lorem Ipsum is simply dummy text of the printing and" + " typesetting industry. Lorem Ipsum has been the industry's" + " standard dummy text ever since the 1500s, when an unknown" + " printer took a galley of type and scramb...

android kotlin ktx - AlignmentSpan example

MainActivity.kt package com.example.jetpack import android.graphics.Color import android.graphics.Typeface import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.text.Layout import android.text.style.* import androidx.core.text.set import androidx.core.text.toSpannable import kotlinx.android.synthetic.main.activity_main.* class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val text = ("Left aligned text.\nCenter aligned text.\nRight aligned text").toSpannable() // Set alignment span text[0..18] = AlignmentSpan.Standard(Layout.Alignment.ALIGN_NORMAL) text[0..18] = StyleSpan(Typeface.BOLD) text[18..39] = AlignmentSpan.Standard(Layout.Alignment.ALIGN_CENTER) text[18..39] = ForegroundColorSpan(Color.RED) text[39..text.length] = AlignmentSpan.S...

android kotlin ktx - AbsoluteSizeSpan RelativeSizeSpan example

MainActivity.kt package com.example.jetpack import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.text.style.* import androidx.core.text.set import androidx.core.text.toSpannable import kotlinx.android.synthetic.main.activity_main.* class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val text = ("Lorem Ipsum is simply dummy text of the printing and" + " typesetting industry. Lorem Ipsum has been the industry's" + " standard dummy text ever since the 1500s, when an unknown" + " printer took a galley of type and scrambled it" + " to make a type specimen book.").toSpannable() // Set the text size to size physical pixels, // or to size device-independent pixels if dip i...

android kotlin ktx - SuperscriptSpan SubscriptSpan example

MainActivity.kt package com.example.jetpack import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.text.style.* import androidx.core.text.set import androidx.core.text.toSpannable import kotlinx.android.synthetic.main.activity_main.* class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val text = ("1st Android Tutorial. 2nd Android Tutorial.\n\nH2O for Water.").toSpannable() // Super script span text[1..3] = SuperscriptSpan() text[text.indexOf("2nd")+1..text.indexOf("2nd")+3] = SuperscriptSpan() // Sub script span text[text.indexOf("H2O")+1..text.indexOf("H2O")+2] = SubscriptSpan() textView.text = text } } activity_main.xml <?xml version="1.0" encoding="utf-8"?> ...

android kotlin ktx - TabStopSpan example

MainActivity.kt package com.example.jetpack import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.text.style.* import androidx.core.text.set import androidx.core.text.toSpannable import kotlinx.android.synthetic.main.activity_main.* class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val text = ("\tLorem Ipsum is simply dummy text of the printing and" + " typesetting industry. \n\n\tLorem Ipsum has been the industry's" + " standard dummy text ever since the 1500s, when an unknown" + " printer took a galley of type and scrambled it" + " to make a type specimen book.").toSpannable() // Tab stop span standard // Offset of the tab stop from the leading margin of the fi...

android kotlin ktx - TextAppearanceSpan example

MainActivity.kt package com.example.jetpack import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.text.style.* import androidx.core.text.set import androidx.core.text.toSpannable import kotlinx.android.synthetic.main.activity_main.* class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val text = ("Lorem Ipsum is simply dummy text of the printing and" + " typesetting industry. Lorem Ipsum has been the industry's" + " standard dummy text ever since the 1500s, when an unknown" + " printer took a galley of type and scrambled it" + " to make a type specimen book.").toSpannable() // Text appearance span text[25..125] = TextAppearanceSpan(this,R.style.TextAppearance_AppCom...

android kotlin ktx - URLSpan example

MainActivity.kt package com.example.jetpack import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.text.method.LinkMovementMethod import android.text.style.* import androidx.core.text.set import androidx.core.text.toSpannable import kotlinx.android.synthetic.main.activity_main.* class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val text = ("Lorem Ipsum is simply dummy text of the printing and" + " typesetting industry. Lorem Ipsum has been the industry's" + " standard dummy text ever since the 1500s, when an unknown" + " printer took a galley of type and scrambled it" + " to make a type specimen book.").toSpannable() // Set the url span text[0..11] = URLSpan("h...