SetWallpaper介绍如何在Android获取当前Wallpaper,对Wallpaper做些修改,然后用修改后的图像重新设置Wallpaper。(即设置》显示》壁纸》壁纸的功能)

WallpaperManager用来管理Android的Wallpaper。下面代码通过WallpaperManager来取得当前Wallpaper然后显示在屏幕Layout的imageView上。

        final WallpaperManager wallpaperManager = WallpaperManager.getInstance(this); final Drawable wallpaperDrawable = wallpaperManager.getDrawable(); final ImageView imageView = (ImageView) findViewById(R.id.imageview);        imageView.setDrawingCacheEnabled(true);        imageView.setImageDrawable(wallpaperDrawable);

randomize对原壁纸进行颜色过滤:

        Button randomize = (Button) findViewById(R.id.randomize);        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();            }        });

其中mColors如下:

    final static private int[] mColors = {Color.BLUE, Color.GREEN, Color.RED, Color.LTGRAY, Color.MAGENTA, Color.CYAN,                    Color.YELLOW, Color.WHITE};

重新设置Wallpaper,也是通过WallpaperManager。

        Button setWallpaper = (Button) findViewById(R.id.setwallpaper);        setWallpaper.setOnClickListener(new OnClickListener() {            public void onClick(View view) {                try { wallpaperManager.setBitmap(imageView.getDrawingCache());                    finish();                } catch (IOException e) {                    e.printStackTrace();                }            }        });

这里还使用了ImageView的getDrawingCache方法,DrawingCache使用,使用这个方法前必须setDrawingCacheEnabled为true,否则获取不到view的cache图片。

更多相关文章

  1. Android(安卓)之 Choreographer 详细分析
  2. 【Android】点击WebView中的按钮,关闭当前activity
  3. Android(安卓)SQLite数据库增删改查操作的使用
  4. android 自定义view 前的基础知识
  5. Android图灵机器人的实现(一)
  6. (转载)Android显示GIF
  7. 详解android 接口回调
  8. Android中TouchEvent触摸事件机制
  9. Android画图之抗锯齿(转)

随机推荐

  1. android am命令
  2. Android(安卓)O - 为什么要引入HIDL
  3. Android(安卓)应用程序签名
  4. Android(安卓)Day03-SQLite数据库操作及L
  5. android基础之Application
  6. Android(安卓)Studio 开发常用快捷键
  7. Android的状态栏
  8. android 设置中文字体。。。。
  9. Android(安卓)禁止带有home属性的APP安装
  10. Android数字证书