¿Cómo configurar el fondo dibujable mediante programación en Android?

En muchas aplicaciones de Android, podemos llegar a ver que el color de fondo de esta aplicación cambia dinámicamente cuando se actualiza desde el servidor. Para actualizar este color, debemos establecer el color de fondo de nuestro diseño mediante programación. En este artículo, veremos cómo configurar el fondo dibujable mediante programación en una aplicación de Android.  

Nota : este artículo de Android cubre los lenguajes Java y Kotlin

Implementación paso a paso

Paso 1: crea un nuevo proyecto en Android Studio

Cómo crear/iniciar un nuevo proyecto en Android Studio

Paso 2: trabajar con el archivo activity_main.xml

Vaya a aplicación > res > diseño > actividad_principal.xml y agréguele el siguiente código. Se agregan comentarios en el código para conocer en detalle. 

XML

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/idRLContainer"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity">
  
    <!--on below line we are creating
        a text for heading of our app-->
    <TextView
        android:id="@+id/idTVHeading"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:layout_margin="20dp"
        android:gravity="center"
        android:padding="10dp"
        android:text="Background Drawable in Android"
        android:textAlignment="center"
        android:textColor="@color/white"
        android:textSize="20sp"
        android:textStyle="bold" />
  
</RelativeLayout>

Paso 3: crear un dibujo personalizado

Vaya a app>res>drawable>Haga clic con el botón derecho en él>Nuevo archivo Drawable y asígnele el nombre back_drawable y agréguele el siguiente código. Se agregan comentarios en el código para conocer en detalle. 

XML

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <!--on below line we are adding gradient and
    specifying start and end color with angle-->
    <gradient
        android:angle="270"
        android:endColor="@color/white"
        android:startColor="#0F9D58" />
  
</shape>

Paso 4: trabajar con el archivo MainActivity 

Vaya a aplicación > java > nombre del paquete de su aplicación > archivo MainActivity y agregue el código a continuación. Se agregan comentarios en el código para conocer en detalle. 

Kotlin

package com.gtappdevelopers.kotlingfgproject
  
import android.os.Bundle
import android.widget.RelativeLayout
import androidx.appcompat.app.AppCompatActivity
  
class MainActivity : AppCompatActivity() {
  
    // on below line we are creating variable for our view.
    lateinit var containerRL: RelativeLayout
  
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
  
        // on below line we are initialing our variable with id.
        containerRL = findViewById(R.id.idRLContainer)
  
        // on below line we are setting background for 
        // our relative layout on below line.
        containerRL.background = resources.getDrawable(R.drawable.back_drawable)
  
    }
}

Java

package com.gtappdevelopers.kotlingfgproject;
  
import android.os.Bundle;
import android.widget.RelativeLayout;
import androidx.appcompat.app.AppCompatActivity;
  
public class MainActivity extends AppCompatActivity {
  
    // on the below line we are creating a variable.
    private RelativeLayout containerRL;
  
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
  
        // on below line we are initializing variables with ids.
        containerRL = findViewById(R.id.idRLContainer);
  
        // on below line we are setting background for
        // our relative layout on below line.
        containerRL.setBackground(getResources().getDrawable(R.drawable.back_drawable));
    }
}

Ahora ejecute su aplicación para ver el resultado. 

Producción:

Output

Publicación traducida automáticamente

Artículo escrito por chaitanyamunje y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *