正文  UI设计 > 界面特效 >

修改Luncher界面和在程序中修改壁纸

首先,准备好两张内容相同的图片,规格分别为 107×80 640×480,格式为jpg格式,然后分别命名为wallpaper_papername_small和 wallpaper_papername。其中papername是你给图片起的名字。其中小图片是......

首先,准备好两张内容相同的图片,规格分别为 107×80 640×480,格式为jpg格式,然后分别命名为wallpaper_papername_small和 wallpaper_papername。其中papername是你给图片起的名字。其中小图片是用于在选择wallpaper的那个gallery控件显示。wallpaper_papername为壁纸图片。

把图片放到/packages/apps/Launcher2/res/drawable-mdpi目录下。然后在文件/packages/apps/Launcher2/res/values-mdpi/wallpapers.xml中添加 <item>wallpaper_papername</item>。

 
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <resources>
  3. <string-array name="wallpapers" translatable="false">
  4. <item>wallpaper_lake</item>
  5. <item>wallpaper_sunset</item>
  6. <item>wallpaper_beach</item>
  7. <item>wallpaper_snow_leopard</item>
  8. <item>wallpaper_path</item>
  9. <item>wallpaper_sunrise</item>
  10. <item>wallpaper_mountain</item>
  11. <item>wallpaper_road</item>
  12. <item>wallpaper_jellyfish</item>
  13. <item>wallpaper_zanzibar</item>
  14. <item>wallpaper_blue</item>
  15. <item>wallpaper_grey</item>
  16. <item>wallpaper_green</item>
  17. <item>wallpaper_pink</item>
  18. <item>wallpaper_leaves</item>
  19. </string-array>
  20. </resources>
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string-array name="wallpapers" translatable="false"> 	
        <item>wallpaper_lake</item>
        <item>wallpaper_sunset</item>
        <item>wallpaper_beach</item>
        <item>wallpaper_snow_leopard</item>
        <item>wallpaper_path</item>
        <item>wallpaper_sunrise</item>
        <item>wallpaper_mountain</item>
        <item>wallpaper_road</item>
        <item>wallpaper_jellyfish</item>
        <item>wallpaper_zanzibar</item>
        <item>wallpaper_blue</item>
        <item>wallpaper_grey</item>
        <item>wallpaper_green</item>
        <item>wallpaper_pink</item>
        <item>wallpaper_leaves</item>
    </string-array>
</resources>

如果你不是想修改Luncher的源代码,只是想在自己的程序中修改壁纸(wallpaper),可以采用一下方法:

首先我们需要取得设置壁纸的权限。和其它权限一样,只要在配置文件中加上以下配置信息即可。
<uses-permission android:name="android.permission.SET_WALLPAPER" />
然后在程序中调用如下代码即可设置桌面壁纸:
getApplicationContext().setWallpaper(bitmap)