`

android 远程下载桌面背景图案——URLConnection 与 setWallpaper() 搭配

阅读更多

主类代码:

package com.EX08;

import java.net.URL;
import java.net.URLConnection;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;

public class EX08_10 extends Activity {

	private Button button1, button2;
	private EditText edittext;
	private ImageView imageview;
	private TextView textview;
	private Bitmap bm;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		setContentView(R.layout.ex08_10);

		/** 通过 findViewById()构造器创建 Button 和TextView、EditText、ImageView 对象 */

		button1 = (Button) findViewById(R.id.myButton1);
		button2 = (Button) findViewById(R.id.myButton2);
		textview = (TextView) findViewById(R.id.myText);
		edittext = (EditText) findViewById(R.id.myEdit);
		imageview = (ImageView) findViewById(R.id.myImage);

		button1.setOnClickListener(new Button.OnClickListener() {

			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				String path = edittext.getText().toString();

				if (path.equals("")) {
					showDialog("图片网址不能为空!");
				} else {
					setImage(path, 1);
				}
			}
		});

		button2.setOnClickListener(new Button.OnClickListener() {
			@Override
			public void onClick(View v) {
				try {
					String path = edittext.getText().toString();
					if (path.equals("")) {
						showDialog("网址不可以为空!");
					} else {
						/**传入 type=2 设置成桌面*/
						setImage(path, 2);
					}
				} catch (Exception e) {
					showDialog("读取错误,网址可能不是图片或网址错误!");
					bm = null;
					imageview.setImageBitmap(bm);
					button2.setEnabled(false);
					e.printStackTrace();
				}
			}
		});
	}

	/**获得图片 图片预览 并设置成桌面*/
	private void setImage(String path, int type) {
		try {
			URL url = new URL(path);
			URLConnection conn = url.openConnection();
			conn.connect();
			if (type == 1) {
				/**预览图片*/
				bm = BitmapFactory.decodeStream(conn.getInputStream());
				imageview.setImageBitmap(bm);
				button2.setEnabled(true);
			} else if (type == 2) {
				/**设置成桌面*/
				EX08_10.this.setWallpaper(BitmapFactory.decodeStream(conn.getInputStream()));
				bm = null;
				imageview.setImageBitmap(bm);
				button2.setEnabled(false);
				showDialog("桌面背景设置成功!");
			}
		} catch (Exception e) {
			showDialog("读取错误,网址可能不是图片,或网址错误!");
			bm = null;
			imageview.setImageBitmap(bm);
			button2.setEnabled(false);
			e.printStackTrace();
		}
	}

	/**弹出Dialog对话框*/
	private void showDialog(String mess) {
		new AlertDialog.Builder(EX08_10.this).setTitle("Message").setMessage(
				mess).setNegativeButton("确定",
				new DialogInterface.OnClickListener() {
					public void onClick(DialogInterface dialog, int which) {
					}
				}).show();
	}

}

 

 

主配置文件代码(AndroidManifest.xml):

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
	package="com.EX08" android:versionCode="1" android:versionName="1.0">
	<application android:icon="@drawable/icon"
		android:label="@string/app_name">
		<activity android:name=".EX08"
			android:label="@string/app_name">
			<intent-filter>
				<action android:name="android.intent.action.MAIN" />
				<category
					android:name="android.intent.category.LAUNCHER" />
			</intent-filter>
		</activity>
		<activity android:name="EX08_01" />
		<activity android:name="EX08_02" />
		<activity android:name="EX08_03" />
		<activity android:name="EX08_04" />
		<activity android:name="EX08_05" />
		<activity android:name="EX08_09" />
		<activity android:name="EX08_10" />
	</application>
	<!-- 添加网络连接权限 -->
	<uses-permission android:name="android.permission.INTERNET">
	</uses-permission>
	<uses-permission
		android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
	<!-- 设置桌面背景的权限 -->
	<uses-permission
		android:name="android.permission.SET_WALLPAPER" />
	<uses-sdk android:minSdkVersion="7" />
</manifest>

 

string.xml配置如下:

<?xml version="1.0" encoding="utf-8"?>
<resources>
	<string name="hello">Hello World, EX08_02</string>
	<string name="app_name">EX08</string>
	<string name="load">正在载入</string>
	<string name="str_msg">下載中....請稍候...</string>
	<string name="str_list_url1">Google</string>
	<string name="str_list_url2">Dubblogs</string>
	<string name="str_list_url3">Yahoo</string>
	<string name="str_list_url4">MSN</string>
	<string name="str_url1">http://www.google.com</string>
	<string name="str_url2">http://www.dubblogs.cc</string>
	<string name="str_url3">http://www.yahoo.com</string>
	<string name="str_url4">http://www.msn.com</string>

	<string name="url">
		http://www.dubblogs.cc:8751/Android/Test/Media/mp3/test.mp3
	</string>

	<string name="str_title">輸入圖片網址:</string>
	<string name="str_button1">預覽圖片</string>
	<string name="str_button2">設為桌面</string>
	<string name="imageurl">
	<!--(gif格式) http://www.baidu.com/img/baidu_logo_jr_1003_315.gif -->
	<!--(png格式) http://share.ooopic.com/icon/img_icon/505/Dark_Part_1_031.png -->
	http://www.54caizi.org/plugin/windsphoto/photofile/20086/200862023250132.jpg
	</string>
</resources>

 

同时支持:JPG、PNG、GIF、BMP格式的图片

 

 效果如下:

  • 大小: 48 KB
分享到:
评论
1 楼 董瑞龙 2010-09-25  
学习了 谢谢

相关推荐

    Android与Internet接轨案例源代码

    8.10 远程下载桌面背景图案——URLConnection与setWallpaper()搭配 8.11 将手机文件上传至网站服务器——模拟HTTPFORM的POSTACTION 8.12 移动博客发布器——以XML-RPC达成远程过程调用 8.13 移动RSS阅读器——利用...

    Google Android SDK开发范例大全(PDF完整版4)(4-4)

    8.10 远程下载桌面背景图案——URLConnection与setWallpaper()搭配 8.11 将手机文件上传至网站服务器——模拟HTTPFORM的POSTACTION 8.12 移动博客发布器——以XML-RPC达成远程过程调用 8.13 移动RSS阅读器——利用...

    Google Android SDK开发范例大全(PDF高清完整版1)(4-1)

    8.10 远程下载桌面背景图案——URLConnection与setWallpaper()搭配 8.11 将手机文件上传至网站服务器——模拟HTTPFORM的POSTACTION 8.12 移动博客发布器——以XML-RPC达成远程过程调用 8.13 移动RSS阅读器——利用...

    Google Android SDK开发范例大全(PDF高清完整版3)(4-3)

    8.10 远程下载桌面背景图案——URLConnection与setWallpaper()搭配 8.11 将手机文件上传至网站服务器——模拟HTTPFORM的POSTACTION 8.12 移动博客发布器——以XML-RPC达成远程过程调用 8.13 移动RSS阅读器——利用...

    Google Android SDK开发范例大全的目录

    8.10 远程下载桌面背景图案——URLConnection与setWallpaper()搭配 8.11 将手机文件上传至网站服务器——模拟HTTPFORM的POSTACTION 8.12 移动博客发布器——以XML-RPC达成远程过程调用 8.13 移动RSS阅读器——利用...

    Google Android SDK开发范例大全(完整版附部分源码).pdf

    8.10 远程下载桌面背景图案——URLConnection与setWallpaper()搭配 8.11 将手机文件上传至网站服务器——模拟HTTPFORM的POSTACTION 8.12 移动博客发布器——以XML-RPC达成远程过程调用 8.13 移动RSS阅读器——...

    Google+Android+SDK开发范例大全

    8.8 通过网络播放MP3——Runnable存储FileOutputStream技巧 8.9 设置远程下载音乐为手机铃声——RingtoneManager与铃声存放路径 8.10 远程下载桌面背景图案——URLConnection与setWallpaper()搭配 8.11 将手机文件...

    Google Android SDK 开发范例大全01

    8.10 远程下载桌面背景图案——URLConnection与setWallpaper()搭配 8.11 将手机文件上传至网站服务器——模拟HTTPFORM的POSTACTION 8.12 移动博客发布器——以XML-RPC达成远程过程调用 8.13 移动RSS阅读器——利用...

    Google Android SDK 开发范例大全02

    8.10 远程下载桌面背景图案——URLConnection与setWallpaper()搭配 8.11 将手机文件上传至网站服务器——模拟HTTPFORM的POSTACTION 8.12 移动博客发布器——以XML-RPC达成远程过程调用 8.13 移动RSS阅读器——利用...

    Google Android sdk 开发范例大全 部分章节代码

    8.10 远程下载桌面背景图案——URLConnection与setWallpaper()搭配 8.11 将手机文件上传至网站服务器——模拟HTTPFORM的POSTACTION 8.12 移动博客发布器——以XML-RPC达成远程过程调用 8.13 移动RSS阅读器——利用...

    Google Android SDK开发范例大全(完整版)

    8.10 远程下载桌面背景图案——URLConnection与setWallpaper()搭配 8.11 将手机文件上传至网站服务器——模拟HTTPFORM的POSTACTION 8.12 移动博客发布器——以XML-RPC达成远程过程调用 8.13 移动RSS阅读器——利用...

Global site tag (gtag.js) - Google Analytics