欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android编程之手机壁纸WallPaper设置方法示例

程序员文章站 2023-11-29 09:53:28
本文实例讲述了android编程之手机壁纸wallpaper设置方法。分享给大家供大家参考,具体如下: /** * andorid设置手机屏幕的壁纸 *...

本文实例讲述了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);
  }
}

布局文件:

<?xml version="1.0" encoding="utf-8"?>
<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>

更多关于android相关内容感兴趣的读者可查看本站专题:《android图形与图像处理技巧总结》、《android开发入门与进阶教程》、《android调试技巧与常见问题解决方法汇总》、《android基本组件用法总结》、《android视图view技巧总结》、《android布局layout技巧总结》及《android控件用法总结

希望本文所述对大家android程序设计有所帮助。