Redes Sociais
 Telegram  YouTube
Texto justificado com api menor que 26 no Android
24 de abril de 2021
XML

Nesse tutorial vou descrever como deixar Texto justificado com api menor que 26 no Android Studio, pois este recurso foi apenas introduzido após api 26.

Primeiramente como todos os outros projetos vamos criar um projeto vazio(Empty) na linguagem Kotlin para ver como funciona este recurso.

Logo após criar o nosso projeto vamos então inserir no nosso gradle a biblioteca necessária para que funcione o texto justificado em um TextView.

Vamos então deixar o nosso gradle com o seguinte código.

plugins {
    id 'com.android.application'
    id 'kotlin-android'
}

android {
    compileSdkVersion 30
    buildToolsVersion "30.0.3"

    defaultConfig {
        applicationId "br.com.uware.textojustificado"
        minSdkVersion 21
        targetSdkVersion 30
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }

    buildFeatures {
        viewBinding 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'
    }
}

dependencies {

    implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
    implementation 'androidx.core:core-ktx:1.3.2'
    implementation 'androidx.appcompat:appcompat:1.2.0'
    implementation 'com.google.android.material:material:1.3.0'
    implementation 'androidx.constraintlayout:constraintlayout:2.0.4'

    // JustifiedText
    implementation 'com.codesgood:justifiedtextview:2.0.1'

    // Test
    testImplementation 'junit:junit:4.+'
    androidTestImplementation 'androidx.test.ext:junit:1.1.2'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
}




Com o código do gradle assim como o código acima vamos então inserir uma grande string no arquivo strings.xml.

Então para isso utilizei um site de lorem ipsum, você pode escolher o de sua preferencia.

Agora vamos editar o nosso arquivo de strings.xml deixando assim como o seguinte.

<resources>
    <string name="app_name">Texto Justificado</string>
    
    <string name="text_justified">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. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.</string>
</resources>

Este recurso de texto justificado é bem simples de ser utilizado, é necessário somente substituir um TextView por com.codesgood.views.JustifiedTextView.

Para mostrar o recurso vamos então editar o arquivo activity_main.xml e deixar com o seguinte código.

<?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"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <com.codesgood.views.JustifiedTextView
        android:id="@+id/tv_justified_text"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/text_justified"
        android:layout_margin="16dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

</androidx.constraintlayout.widget.ConstraintLayout>

Portanto com isto o texto já vai aparecer de forma justificada na tela.

Mas se você deseja inserir o texto na programação também é possivel apenas inserindo o texto como se fosse em um TextView normal.

Então para isso você pode usar o código assim como o seguinte em sua MainActivity.kt.

package br.com.uware.textojustificado

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import br.com.uware.textojustificado.databinding.ActivityMainBinding

class MainActivity : AppCompatActivity() {
    
    private lateinit var binding: ActivityMainBinding
    
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        binding = ActivityMainBinding.inflate(layoutInflater)
        setContentView(binding.root)
        
        // Inserindo texto com programação
        binding.tvJustifiedText.text = getString(R.string.text_justified)
    }
}

Então o aplicativo deve ficar como o da seguinte imagem usando a api 24.

API 24

Se você desejar ver mais sobre este projeto então acesse o link do github.

Este projeto tem a licença apache para saber mais leia http://www.apache.org/licenses/LICENSE-2.0

Enfim espero poder ter ajudado com mais este tutorial sobre como deixar texto justificado com api menor que 26 no Android Studio.





Autor: Rodrigo Leutz

Desenvolvedor Web e Android ( Kotlin e Java )


Como usar o ScrollView no Android Studio

Neste tutorial vamos ver como usar o ScrollView no Android Studio para fazer barra de rolagem na tela adicionando arquivos de[...]

20 de maio de 2020

Como criar um arquivo de layout no Android Studio

Nesse tutorial vou descrever como como criar um arquivo de layout no Android Studio para assim ser adicionado ao seu[...]

8 de abril de 2020

Button com efeito no background XML

Nesse tutorial vou descrever como fazer Button com efeito no background XML para que assim você faça um botão com efeito. Primeiramente vamos[...]

26 de novembro de 2019