Как программно установить изображение в качестве обоев в Android?
Программная установка обоев в Android полезна, когда приложение загружает обои из библиотеки API и спрашивает пользователя, установить обои для домашнего экрана или нет. В этой статье обсуждалось, как программно установить образец изображения в качестве обоев рабочего экрана. Взгляните на следующее изображение, чтобы понять, как это будет работать после реализации. Обратите внимание, что мы собираемся реализовать этот проект на языке Java.
Шаги по реализации программной установки обоев
Шаг 1. Создайте новый проект
- Чтобы создать новый проект в Android Studio, обратитесь к разделу «Как создать / запустить новый проект в Android Studio».
- Обратите внимание, что выберите Java в качестве языка программирования.
Шаг 2. Теперь добавьте разрешение к файлу AndroidManifest.xml.
- Вызовите следующий код в файле AndroidMainfest.xml.
XML
<? xml version = "1.0" encoding = "utf-8" ?> 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 > |
- См. Следующее изображение, если не удается найти файл AndroidManifest.xml для вызова разрешения.
Шаг 3: Теперь импортируйте несколько изображений в папку с возможностью рисования.
- Импортируйте некоторые изображения в папку с возможностью рисования или можете получить изображения из библиотек API.
- В этом случае образец изображения логотипа GeeksforGeeks был импортирован в папку для рисования.
- Папку с возможностью рисования можно получить в приложении> src> main> res> drawable
- Если не удается найти папку с возможностью переноса, обратитесь к следующему изображению.
Шаг 4. Работа с файлом activity_main.xml
- Вызовите простой макет, приведенный ниже, в файле activity_main.xml. Комментарии добавляются внутри кода для более подробного понимания кода.
XML
<? xml version = "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. Комментарии добавляются внутри кода для более подробного понимания кода.
Ява
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(); } } }); } } |
Выход: запустить на эмуляторе
Вниманию читателя! Не прекращайте учиться сейчас. Ознакомьтесь со всеми важными концепциями Java Foundation и коллекций с помощью курса "Основы Java и Java Collections" по доступной для студентов цене и будьте готовы к работе в отрасли. Чтобы завершить подготовку от изучения языка к DS Algo и многому другому, см. Полный курс подготовки к собеседованию .