zoukankan      html  css  js  c++  java
  • 【起航计划 013】2015 起航计划 Android APIDemo的魔鬼步伐 12 App->Activity->SetWallpaper 设置壁纸 WallpaperManager getDrawingCache使用

    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图片。

  • 相关阅读:
    windows_MySQL安装详解
    nginx 基本安全优化
    pip._vendor.urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='files.pythonhosted.org', port=443): Read timed out.
    浏览器缓存
    JavaScript迭代
    js模块开发
    关于逻辑删除标识字段value的设定
    c#单例(Singleton)模式实现
    css兼容小问题
    IIS网站不能访问
  • 原文地址:https://www.cnblogs.com/dongdong230/p/4310931.html
Copyright © 2011-2022 走看看