Как программно установить изображение в качестве обоев в Android?
Программная установка обоев в Android полезна, когда приложение загружает обои из библиотеки API и спрашивает пользователя, установить обои для домашнего экрана или нет. В этой статье обсуждалось, как программно установить образец изображения в качестве обоев рабочего экрана. Взгляните на следующее изображение, чтобы понять, как это будет работать после реализации. Обратите внимание, что мы собираемся реализовать этот проект на языке Java.

Шаги по реализации программной установки обоев
Шаг 1. Создайте новый проект
- Чтобы создать новый проект в Android Studio, обратитесь к разделу «Как создать / запустить новый проект в Android Studio».
- Обратите внимание, что выберите Java в качестве языка программирования.
Шаг 2. Теперь добавьте разрешение к файлу AndroidManifest.xml.
- Вызовите следующий код в файле AndroidMainfest.xml.
XML
| <?xmlversion="1.0"encoding="utf-8"?>    package="com.adityamshidlyali.setimageaswallpaper">     <!--access permission to set the wallpaper-->    <uses-permissionandroid: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">        <activityandroid:name=".MainActivity">            <intent-filter>                <actionandroid:name="android.intent.action.MAIN"/>                 <categoryandroid:name="android.intent.category.LAUNCHER"/>            </intent-filter>        </activity>    </application> </manifest> | 
- См. Следующее изображение, если не удается найти файл AndroidManifest.xml для вызова разрешения.

Шаг 3: Теперь импортируйте несколько изображений в папку с возможностью рисования.
- Импортируйте некоторые изображения в папку с возможностью рисования или можете получить изображения из библиотек API.
- В этом случае образец изображения логотипа GeeksforGeeks был импортирован в папку для рисования.
- Папку с возможностью рисования можно получить в приложении> src> main> res> drawable
- Если не удается найти папку с возможностью переноса, обратитесь к следующему изображению.

Шаг 4. Работа с файлом activity_main.xml
- Вызовите простой макет, приведенный ниже, в файле activity_main.xml. Комментарии добавляются внутри кода для более подробного понимания кода.
XML
| <?xmlversion="1.0"encoding="utf-8"?><LinearLayout    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> | 
Создается следующий выходной интерфейс:

Шаг 5: Работа с файлом MainActivity.java
- Обработайте кнопку, чтобы установить желаемые обои с помощью WallpaperManager.
- Вызовите следующий код в файле MainActivity.java. Комментарии добавляются внутри кода для более подробного понимания кода.
Ява
| importandroidx.appcompat.app.AppCompatActivity;importandroid.annotation.SuppressLint;importandroid.app.WallpaperManager;importandroid.os.Bundle;importandroid.view.View;importandroid.widget.Button;importjava.io.IOException; publicclassMainActivityextendsAppCompatActivity {     // button to set the home screen wallpaper when clicked    Button bSetWallpaper;     @Override    protectedvoidonCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);         // creating the instance of the WallpaperManager        finalWallpaperManager 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(newView.OnClickListener() {            @SuppressLint("ResourceType")            @Override            publicvoidonClick(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();                }            }        });    }} | 
Выход: запустить на эмуляторе
Вниманию читателя! Не прекращайте учиться сейчас. Ознакомьтесь со всеми важными концепциями Java Foundation и коллекций с помощью курса "Основы Java и Java Collections" по доступной для студентов цене и будьте готовы к работе в отрасли. Чтобы завершить подготовку от изучения языка к DS Algo и многому другому, см. Полный курс подготовки к собеседованию .