Configurar el fondo de pantalla en Android mediante programación es útil cuando la aplicación obtiene fondos de pantalla de la biblioteca API y le pregunta al usuario si desea configurar el fondo de pantalla para la pantalla de inicio o no. En este artículo, se ha discutido cómo configurar una imagen de muestra como fondo de pantalla de la pantalla de inicio mediante programación. Eche un vistazo a la siguiente imagen para tener una idea de cómo funcionará después de la implementación. Tenga en cuenta que vamos a implementar este proyecto utilizando el lenguaje Java .
Pasos para implementar la configuración del fondo de pantalla mediante programación
Paso 1: Crear un nuevo proyecto
- Para crear un nuevo proyecto en Android Studio, consulte Cómo crear/iniciar un nuevo proyecto en Android Studio .
- Tenga en cuenta que seleccione Java como lenguaje de programación.
Paso 2: ahora agregue el permiso al archivo AndroidManifest.xml
- Invoque el siguiente código en el archivo AndroidMainfest.xml .
XML
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.adityamshidlyali.setimageaswallpaper"> <!--access permission to set the wallpaper--> <uses-permission android:name="android.permission.SET_WALLPAPER" /> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
- Consulte la siguiente imagen si no puede ubicar el archivo AndroidManifest.xml para invocar el permiso.
Paso 3: ahora importa algunas imágenes a la carpeta dibujable
- Importe algunas imágenes a la carpeta dibujable o puede obtener las imágenes de las bibliotecas API.
- En este caso, se ha importado una imagen de logotipo de GeeksforGeeks de muestra a la carpeta dibujable.
- La carpeta dibujable se puede obtener en la aplicación> src> principal> res> dibujable
- Si no puede ubicar la carpeta dibujable, consulte la siguiente imagen.
Paso 4: trabajar con el archivo activity_main.xml
- Invoque el diseño simple que se proporciona a continuación en el archivo activity_main.xml . Se agregan comentarios dentro del código para comprender el código con más detalle.
XML
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context=".MainActivity" tools:ignore="HardcodedText"> <!--layout to bound the width and height of the wallpaper preview--> <LinearLayout android:layout_width="match_parent" android:layout_height="400dp"> <!--a sample image view for the preview purpose--> <ImageView android:id="@+id/wallpaper_image" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="16dp" android:scaleType="centerCrop" android:src="@drawable/wallpaper" /> </LinearLayout> <!--button which sets the image as wallpaper--> <Button android:id="@+id/set_wallpaper_button" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="16dp" android:text="Set As Wallpaper" /> </LinearLayout>
Se produce la siguiente interfaz de usuario de salida:
Paso 5: trabajar con el archivo MainActivity.java
- Maneje el botón para configurar el fondo de pantalla deseado usando WallpaperManager.
- Invoque el siguiente código en el archivo MainActivity.java . Se agregan comentarios dentro del código para comprender el código con más detalle.
Java
import androidx.appcompat.app.AppCompatActivity; import android.annotation.SuppressLint; import android.app.WallpaperManager; import android.os.Bundle; import android.view.View; import android.widget.Button; import java.io.IOException; public class MainActivity extends AppCompatActivity { // button to set the home screen wallpaper when clicked Button bSetWallpaper; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // creating the instance of the WallpaperManager final WallpaperManager wallpaperManager = WallpaperManager.getInstance(getApplicationContext()); // handle the set wallpaper button to set the desired wallpaper for home screen bSetWallpaper = findViewById(R.id.set_wallpaper_button); bSetWallpaper.setOnClickListener(new View.OnClickListener() { @SuppressLint("ResourceType") @Override public void onClick(View v) { try { // set the wallpaper by calling the setResource function and // passing the drawable file wallpaperManager.setResource(R.drawable.wallpaper); } catch (IOException e) { // here the errors can be logged instead of printStackTrace e.printStackTrace(); } } }); } }
Salida: ejecutar en el emulador
Publicación traducida automáticamente
Artículo escrito por adityamshidlyali y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA