public class MainActivity extends Activity { private Bitmap mWallpaper; private TextView tv=null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); tv=(TextView)this.findViewById(R.id.setWallPaper); setWallPaper(); } public void setWallPaper(){ WallpaperManager wpm = (WallpaperManager) this.getSystemService(Context.WALLPAPER_SERVICE); InputStream is = null; is = getStream("wallpapers/wallpaper02.jpg"); if(wpm.getWallpaperInfo()!=null){ mWallpaper = Tools.getImageFromInStream(is); try { wpm.setBitmap(mWallpaper); mWallpaper.recycle(); mWallpaper = null; } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } public InputStream getStream(String filename) { InputStream stream = null; try { stream = this.getAssets().open(getFileForDpi(filename)); } catch (IOException e) { try { stream = this.getAssets().open("theme/" + filename); } catch (IOException e1) { e1.printStackTrace(); } e.printStackTrace(); } return stream; } public String getFileForDpi(String filename) { float mScreenScale = this.getResources().getDisplayMetrics().density; if (mScreenScale <= 0.75f) { Log.d("launcher", "dpi=0.75"); filename = "theme-ldpi/" + filename; } else if (mScreenScale <= 1f) { Log.d("launcher", "dpi=1"); filename = "theme-mdpi/" + filename; } else if (mScreenScale <= 1.5f) { Log.d("launcher", "dpi=1.5"); filename = "theme-hdpi/" + filename; } else filename = "theme-xhdpi/" + filename; return filename; } }
注意:需要增加权限:<uses-permission android:name="android.permission.SET_WALLPAPER" />