Android设置手机壁纸(WallPaper)

/**
 * Andorid设置手机屏幕的壁纸
 * 
 * @description:
 * @author ldm
 * @date 2016-5-4 下午3:08:56
 */
public class SetWallpaperActivity extends Activity {
    // WallpaperManager类:系统壁纸管理。通过它可以获得当前壁纸以及设置指定图片作为系统壁纸。
    private WallpaperManager wallpaperManager;
    // 壁纸对应的Drawable
    private Drawable wallpaperDrawable;
    // 展示样式的ImageView
    private ImageView imageView;
    // 随机生成图片的颜色 Button
    private Button randomize;
    // 设置壁纸
    private Button setWallpaper;
    // 暂定的一些颜色值
    final static private int[] mColors = { Color.BLUE, Color.GREEN, Color.RED,
            Color.LTGRAY, Color.MAGENTA, Color.CYAN, Color.YELLOW, Color.WHITE };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.set_wallpaper);
        // 初始化WallpaperManager
        wallpaperManager = WallpaperManager.getInstance(this);
        wallpaperDrawable = wallpaperManager.getDrawable();// 获得当前系统的壁纸
        initViews();
        initListeners();
    }

    private void initListeners() {
        randomize.setOnClickListener(new OnClickListener() {
            public void onClick(View view) {
                int mColor = (int) Math.floor(Math.random() * mColors.length);
                // 给当前系统壁纸设置颜色
                wallpaperDrawable.setColorFilter(mColors[mColor],
                        PorterDuff.Mode.MULTIPLY);// 取两层绘制交集
                imageView.setImageDrawable(wallpaperDrawable);
                // imageView.invalidate();
            }
        });

        setWallpaper.setOnClickListener(new OnClickListener() {
            public void onClick(View view) {
                try {
                    // 设置壁纸
                    wallpaperManager.setBitmap(imageView.getDrawingCache());
                    finish();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        });
    }

    private void initViews() {
        imageView = (ImageView) findViewById(R.id.imageview);
        imageView.setDrawingCacheEnabled(true);
        imageView.setImageDrawable(wallpaperDrawable);
        randomize = (Button) findViewById(R.id.randomize);
        setWallpaper = (Button) findViewById(R.id.setwallpaper);
    }
}

<FrameLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">
    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/imageview" />
    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="wrap_content"
        android:layout_height="match_parent">
        <Button
            android:id="@+id/randomize"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/randomize"
            android:layout_gravity="bottom" />
        <Button
            android:id="@+id/setwallpaper"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/set_wallpaper"
            android:layout_gravity="bottom" />
    LinearLayout>
FrameLayout>

你可能感兴趣的:(Andorid,API,Demos)