Android杂谈---设置模拟器壁纸


天天看着模拟器里面的那个图片感觉很恼火,所以干脆想将其换掉,顺便学一点知识

下面是一个设置模拟器壁纸的例子

1、使用本地图片的方式设置壁纸

SetWallpaper.java

  1. package com.loulijun.setwallpaper;   
  2.   
  3. import java.io.IOException;   
  4.   
  5. import Android.app.Activity;   
  6. import android.content.res.Resources;   
  7. import android.graphics.Bitmap;   
  8. import android.graphics.drawable.BitmapDrawable;   
  9. import android.os.Bundle;   
  10.   
  11. public class SetWallpaper extends Activity {   
  12.     /** Called when the activity is first created. */  
  13.     @Override  
  14.     public void onCreate(Bundle savedInstanceState) {   
  15.         super.onCreate(savedInstanceState);   
  16.         setContentView(R.layout.main);   
  17.         Resources res =getResources();   
  18.         BitmapDrawable bmp = (BitmapDrawable)res.getDrawable(R.drawable.gaoyuanyuan);   
  19.         Bitmap b = bmp.getBitmap();   
  20.         try {   
  21.             setWallpaper(b);   
  22.         } catch (IOException e) {   
  23.             // TODO Auto-generated catch block   
  24.             e.printStackTrace();   
  25.         }   
  26.     }   
  27. }  

另外,在main.xml中加入权限

<uses-permission android:name="android.permission.SET_WALLPAPER" />  

运行结果如下:

由于图片较大,所以设置的时候需要找一张适合模拟器大小的图片即可

2、使用网络图片的方式设置壁纸

上面的实例是在本地设置的图片,那么如果要使用网络的图片的话,看下面的代码

如下是几个方法的说明

  1. conn.setReadTimeout(5 * 1000); // 缓存的最长时间    
  2.  conn.setDoInput(true);// 允许输入    
  3.  conn.setDoOutput(true);// 允许输出    
  4.  conn.setUseCaches(false); // 不允许使用缓存   

比如,setDoOutput(true) :为建立与服务器的一个直接的链接,必须取得自己创建的URL,然后调用openConnection()创建一个URLConnection,但是URLConnection一般不允许我们把数据发给它,所以必须调用

setDoOutput(true)设置其允许输出。

SetWallpaper.java

  1. package com.loulijun.setwallpaper;   
  2.   
  3. import java.io.IOException;   
  4. import java.io.InputStream;   
  5. import java.net.HttpURLConnection;   
  6. import java.net.MalformedURLException;   
  7. import java.net.URL;   
  8.   
  9. import android.app.Activity;   
  10. import android.content.res.Resources;   
  11. import android.graphics.Bitmap;   
  12. import android.graphics.BitmapFactory;   
  13. import android.graphics.drawable.BitmapDrawable;   
  14. import android.os.Bundle;   
  15.   
  16. public class SetWallpaper extends Activity {   
  17.     InputStream is;   
  18.     HttpURLConnection conn;   
  19.     @Override  
  20.     public void onCreate(Bundle savedInstanceState) {   
  21.         super.onCreate(savedInstanceState);   
  22.         setContentView(R.layout.main);   
  23.            
  24.         try {   
  25.             URL url = new URL("http://image2.sina.com.cn/ent/m/c/2005-12-29/U1431P28T3D945145F358DT20051229231657.jpg");   
  26.             conn = (HttpURLConnection)url.openConnection();   
  27.             conn.setDoInput(true);     
  28.             conn.setConnectTimeout(1000);     
  29.             conn.setRequestMethod("GET");     
  30.             conn.connect();     
  31.             is = conn.getInputStream();   
  32.         } catch (MalformedURLException e1) {   
  33.             // TODO Auto-generated catch block   
  34.             e1.printStackTrace();   
  35.         } catch (IOException e1) {   
  36.             // TODO Auto-generated catch block   
  37.             e1.printStackTrace();   
  38.         }   
  39.         //BitmapDrawable bmp = (BitmapDrawable)res.getDrawable(R.drawable.gaoyuanyuan);   
  40.         Bitmap b = BitmapFactory.decodeStream(is);   
  41.            
  42.         try {   
  43.             System.out.println("echo==="+b);   
  44.             setWallpaper(b);   
  45.             is.close();   
  46.             conn.disconnect();   
  47.         } catch (Exception e) {   
  48.             // TODO Auto-generated catch block   
  49.             e.printStackTrace();   
  50.         }   
  51.     }   
  52. }  
  • 1
  • 2
  • 下一页

相关内容