Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/185.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何根据所选图像设置壁纸?_Java_Android_Android Layout_Wallpaper - Fatal编程技术网

Java 如何根据所选图像设置壁纸?

Java 如何根据所选图像设置壁纸?,java,android,android-layout,wallpaper,Java,Android,Android Layout,Wallpaper,我正在制作一个壁纸应用程序,其功能类似于底部有一个水平滚动视图,其中有一个图像按钮列表,单击该按钮将显示应用程序中壁纸的预览。我如何告诉应用程序将壁纸与预览的壁纸进行设置 我的xml: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas

我正在制作一个壁纸应用程序,其功能类似于底部有一个水平滚动视图,其中有一个图像按钮列表,单击该按钮将显示应用程序中壁纸的预览。我如何告诉应用程序将壁纸与预览的壁纸进行设置

我的xml:

<RelativeLayout
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:id="@+id/layout_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:focusable="true"
android:clickable="true"
tools:context="biz.bigtooth.wallpapers.MainActivity">

<Button
    android:id="@+id/set"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:padding="16dp"
    style="@style/Base.Widget.AppCompat.Button.Borderless" 
    android:background="@color/button"
    android:gravity="start|center_vertical"
    android:textColor="@android:color/white"
    android:text="Set Wallpaper" />

<HorizontalScrollView
    android:id="@+id/view"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true">

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:background="@color/bottom">

        <ImageButton android:id="@+id/dsc18"
            android:layout_width="120dp"
            android:layout_height="150dp"
            android:layout_margin="8dp"
            android:focusable="true"
            android:src="@drawable/_dsc0018" />

        <ImageButton android:id="@+id/dsc65"
            android:layout_width="120dp"
            android:layout_height="150dp"
            android:layout_margin="8dp"
            android:focusable="true"
            android:src="@drawable/_dsc0065" />

        <ImageButton android:id="@+id/dsc131"
            android:layout_width="120dp"
            android:layout_height="150dp"
            android:layout_margin="8dp"
            android:focusable="true"
            android:src="@drawable/_dsc0131" />

        <ImageButton android:id="@+id/dsc175"
            android:layout_width="120dp"
            android:layout_height="150dp"
            android:layout_margin="8dp"
            android:focusable="true"
            android:src="@drawable/_dsc0175" />

        <ImageButton android:id="@+id/dsc246"
            android:layout_width="120dp"
            android:layout_height="150dp"
            android:layout_margin="8dp"
            android:focusable="true"
            android:src="@drawable/_dsc0246" />

        <ImageButton android:id="@+id/dsc274"
            android:layout_width="120dp"
            android:layout_height="150dp"
            android:layout_margin="8dp"
            android:focusable="true"
            android:src="@drawable/_dsc0274" />

    </LinearLayout>
</HorizontalScrollView>
</RelativeLayout>

提前感谢您的帮助

首先,您需要设置所需的权限

<uses-permission android:name="android.permission.SET_WALLPAPER"/>

这只是将其设置为在预览第一张壁纸时设置不同的壁纸。
<uses-permission android:name="android.permission.SET_WALLPAPER"/>
dsc18.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        WallpaperManager myWallpaperManager = WallpaperManager.getInstance(getApplicationContext());
            try {
                myWallpaperManager.setResource(onethreeone);
            } catch (IOException e) {
                e.printStackTrace();
            }
        dsc18.hasFocus();
    }
});