- //定义一个根据图片url获取InputStream的方法
- public static byte[] getBytes(InputStream is) throws IOException {
- ByteArrayOutputStream outstream = new ByteArrayOutputStream();
- byte[] buffer = new byte[1024]; // 用数据装
- int len = -1;
- while ((len = is.read(buffer)) != -1) {
- outstream.write(buffer, 0, len);
- }
- outstream.close();
- // 关闭流一定要记得。
- return outstream.toByteArray();
- }
- //然后使用方法decodeByteArray()方法解析编码,生成Bitmap对象。
- byte[] data = getBytes(new URL(imgUrl).openStream());
- Bitmap bm = BitmapFactory.decodeByteArray(data, 0, data.length);
以下是一个设置壁纸的实例应用
new Thread(){
@Override
public void run(){
//你要执行的方法
try {
byte[] data = getBytes(new URL(picurl).openStream());
bitmap = BitmapFactory.decodeByteArray(data, 0, data.length);
WallpaperManager wallpaperManager = WallpaperManager.getInstance(getApplicationContext());
wallpaperManager.setBitmap(bitmap);
}
catch (Exception e) {
Toast.makeText(DialogPhotoEntry.this,"设置桌面图片失败", 1000).show();
e.printStackTrace();
}
//执行完毕后给handler发送一个空消息
handler.sendEmptyMessage(0);
}
}.start();