<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_子午</title><subtitle type="text">非淡泊无以明志,非宁静无以致远</subtitle><id>http://feed.cnblogs.com/blog/u/23751/rss</id><updated>2011-12-27T12:54:48Z</updated><author><name>子午</name><uri>http://www.cnblogs.com/zwl12549/</uri></author><generator>CNBlogs BlogServer</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/zwl12549/"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/23751/rss"/><entry><id>http://www.cnblogs.com/zwl12549/archive/2011/12/27/2303956.html</id><title type="text">探讨Ilist&amp;lt;&amp;gt;与List&amp;lt;&amp;gt; （转）</title><summary type="text">首先要了解一点的是关于接口的基础知识：接口不能直接实例化但是接口派生出来的抽象类可以实例化所有派生出来的抽象类都可以强制转换成接口的实例第三条我解释一下：比如，IList &amp;lt;Class&amp;gt; IList11 =new List &amp;lt;Class&amp;gt;(); 也就是接口派生出来的抽象类可以转换为接口的实例，这也是常说的里氏替换原则（子类对象可以代替父类对象,但其父类对象不能代替子类对象）首先，List&amp;lt;T&amp;gt;是一个类，IList&amp;lt;T&amp;gt;是一个接口。接口和类的区别是本质的，类是负责功能的实现,而接口则是负责功能的定义。所以它们的区别本质上也就是类和接口的区别。具体来</summary><published>2011-12-27T12:55:00Z</published><updated>2011-12-27T12:55:00Z</updated><author><name>子午</name><uri>http://www.cnblogs.com/zwl12549/</uri></author><link rel="alternate" href="http://www.cnblogs.com/zwl12549/archive/2011/12/27/2303956.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/zwl12549/archive/2011/12/27/2303956.html"/><content type="html">&lt;div id="cnblogs_post_body"&gt;&#xD;
&lt;p&gt;首先要了解一点的是关于接口的基础知识：&amp;nbsp;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;接口不能直接实例化&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #ff0000;"&gt;但是接口派生出来的抽象类可以实例化&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #ff0000;"&gt;所有派生出来的抽象类都可以强制转换成接口的实例&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #000000;"&gt;第三条我解释一下：比如，IList &amp;lt;Class&amp;gt; IList11 =new List &amp;lt;Class&amp;gt;(); 也就是接口派生出来的抽象类可以转换为接口的实例，这也是常说的&lt;span style="color: #ff0000;"&gt;里氏替换原则（子类对象可以代替父类对象,但其父类对象不能代替子类对象）&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #000000;"&gt;首先，List&amp;lt;T&amp;gt;是一个类，IList&amp;lt;T&amp;gt;是一个接口。接口和类的区别是本质的，类是负责功能的实现,而接口则是负责功能的定义。所以它们的区别本质上也就是类和接口的区别。&lt;br /&gt;&lt;br /&gt;具体来说，IList 泛型接口是 ICollection 泛型接口的子代，并且是所有泛型列表的基接口。它仅仅是所有泛型类型的接口，并没有太多方法可以方便实用，如果仅仅是作为集合数据的承载体，那么使用IList&amp;lt;T&amp;gt;完全可以胜任。但是更多的时候，我们要对集合数据进行处理，从中筛选数据或者排序。这个时候IList&amp;lt;T&amp;gt;就爱莫能助了。&lt;br /&gt;&lt;br /&gt;1、当你只想使用接口的方法时,ILis&amp;lt;&amp;gt;这种方式比较好.他不获取实现这个接口的类的其他方法和字段，有效的节省空间．&lt;br /&gt;&lt;br /&gt;2、IList &amp;lt;&amp;gt;是个接口,定义了一些操作方法这些方法要你自己去实现&lt;br /&gt;&lt;br /&gt;List &amp;lt;&amp;gt;是泛型类,它已经实现了IList &amp;lt;&amp;gt;定义的那些方法&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #ff6600;"&gt;IList &amp;lt;Class1&amp;gt; IList11 =new List &amp;lt;Class1&amp;gt;(); &lt;span style="color: #000000;"&gt;&lt;span style="color: #ff6600;"&gt;//这里是第三条规则的体现，实现低耦合，毕竟接口属最底层吧。IList1对象可以指向任意一个IList接口的实现&lt;/span&gt;&lt;/span&gt; &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #ff6600;"&gt;List &amp;lt;Class1&amp;gt; List11 =new List &amp;lt;Class1&amp;gt;();&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;这两行代码，从操作上来看，实际上都是创建了一个List&amp;lt;Class1&amp;gt;对象的实例，也就是说，他们的操作没有区别。&lt;br /&gt;&lt;br /&gt;只是用于保存这个操作的返回值变量类型不一样而已。&lt;br /&gt;&lt;br /&gt;那么，我们可以这么理解，这两行代码的目的不一样。&lt;br /&gt;&lt;br /&gt;List &amp;lt;Class1&amp;gt; List11 =new List &amp;lt;Class1&amp;gt;();&lt;br /&gt;&lt;br /&gt;是想创建一个List&amp;lt;Class1&amp;gt;，而且需要使用到List&amp;lt;T&amp;gt;的功能，进行相关操作。&lt;br /&gt;&lt;br /&gt;而&lt;br /&gt;&lt;br /&gt;IList &amp;lt;Class1&amp;gt; IList11 =new List &amp;lt;Class1&amp;gt;();&lt;br /&gt;&lt;br /&gt;只是想创建一个基于接口IList&amp;lt;Class1&amp;gt;的对象的实例，只是这个接口是由List&amp;lt;T&amp;gt;实现的。所以它只是希望使用到IList&amp;lt;T&amp;gt;接口规定的功能而已。&lt;br /&gt;&lt;br /&gt;再举一个例子，比如你要实现一个集合类，但是你认为添加的时候要做一下判断，不能重复，你可以这样做：&lt;br /&gt;&lt;br /&gt;//方法1:&lt;br /&gt;&lt;br /&gt;public class MyCollection1 : List&amp;lt;MyItem&amp;gt;&lt;br /&gt;&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt;public new void Add(MyItem item)&lt;br /&gt;&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt;if (this.Contains(item)) return;&lt;br /&gt;&lt;br /&gt;base.Add(item);&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;//方法2:&lt;br /&gt;&lt;br /&gt;public class MyCollection2 : IList&amp;lt;MyItem&amp;gt;&lt;br /&gt;&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt;private List&amp;lt;MyItem&amp;gt; innerList = new List&amp;lt;MyItem&amp;gt;();&lt;br /&gt;&lt;br /&gt;public void Add(MyItem item)&lt;br /&gt;&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt;if (this.Contains(item)) return;&lt;br /&gt;&lt;br /&gt;base.Add(item);&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;//实现n多的方法后，附带的，有个Add方法，实现即可，实现方法略&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;如果是从List继承而来，那我如果这样写，就能跳过检查了。但是不会调用你写的Add方法，而是调用List的Add方法。&lt;br /&gt;&lt;br /&gt;MyCollection1 mc1 = new MyCollection1();&lt;br /&gt;&lt;br /&gt;.....&lt;br /&gt;&lt;br /&gt;System.Collection.IList listData = mc1;&lt;br /&gt;&lt;br /&gt;listData.Add(listData[0]);&lt;br /&gt;&lt;br /&gt;这样就不会执行你写的检查代码。但如果用下面方法，则会执行你写的Add方法：&lt;br /&gt;&lt;br /&gt;MyCollection2 mc2 = new MyCollection2();&lt;br /&gt;&lt;br /&gt;.....&lt;br /&gt;&lt;br /&gt;System.Collection.IList listData = mc2;&lt;br /&gt;&lt;br /&gt;listData.Add(listData[0]);&lt;br /&gt;&lt;br /&gt;总之，正如那些高手说的：&lt;br /&gt;&lt;br /&gt;接口实现低耦合...有利于系统的维护与重构...优化系统流程...&lt;br /&gt;&lt;br /&gt;鼓励使用接口&lt;br /&gt;&lt;br /&gt;这样可以实现功能和具体实现的分离&lt;br /&gt;&lt;br /&gt;实现接口分离的原则&lt;br /&gt;&lt;br /&gt;不是看实际需要用的&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;另外在提供一个datatable转list&amp;lt;&amp;gt;的代码：&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #000000;"&gt;public IList&amp;lt;T&amp;gt; GetList&amp;lt;T&amp;gt;(DataTable table)&lt;br /&gt;{&lt;br /&gt;IList&amp;lt;T&amp;gt; list = new List&amp;lt;T&amp;gt;(); //里氏替换原则&lt;br /&gt;T t = default(T);&lt;br /&gt;PropertyInfo[] propertypes = null;&lt;br /&gt;string tempName = string.Empty;&lt;br /&gt;foreach (DataRow row in table.Rows)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;t = Activator.CreateInstance&amp;lt;T&amp;gt;(); ////创建指定类型的实例&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #000000;"&gt;propertypes = t.GetType().GetProperties(); //得到类的属性&lt;br /&gt;foreach (PropertyInfo pro in propertypes)&lt;br /&gt;{&lt;br /&gt;tempName = pro.Name;&lt;br /&gt;if (table.Columns.Contains(tempName.ToUpper()))&lt;br /&gt;{&lt;br /&gt;object value = row[tempName];&lt;br /&gt;if (value is System.DBNull)&lt;br /&gt;{&lt;br /&gt;value = "";&lt;br /&gt;}&lt;br /&gt;pro.SetValue(t, value, null);&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;list.Add(t);&lt;br /&gt;}&lt;br /&gt;return list;&lt;br /&gt;}&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;其中 &amp;nbsp; T t = default(T); //就是返回T的默认值。比如说T的类型是int类型的，那么这个default(T)的值就是0的；如果是string类型的话，这个返回值就是&amp;ldquo;&amp;rdquo;空字符串的。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/zwl12549/aggbug/2303956.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/zwl12549/archive/2011/12/27/2303956.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/zwl12549/archive/2011/04/18/2020289.html</id><title type="text">android人人网登陆例子研究</title><summary type="text">eoe上有源码,点击一个自定义图片按钮控件，弹出自定义的一个dialog..内含输入框可登陆.自定的图片按钮：ConnectButton.java对话框：RenrenDialog.java传值Bundle bundle=new Bundle();bundle.putString(&amp;quot;store&amp;quot;, &amp;quot;数据来自Activity1&amp;quot;);Intent mIntent=new Intent();mIntent.putExtras(bundle);获取 Bundle extras=getIntent().getExtras();if(extras!=null){da</summary><published>2011-04-18T14:26:00Z</published><updated>2011-04-18T14:26:00Z</updated><author><name>子午</name><uri>http://www.cnblogs.com/zwl12549/</uri></author><link rel="alternate" href="http://www.cnblogs.com/zwl12549/archive/2011/04/18/2020289.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/zwl12549/archive/2011/04/18/2020289.html"/><content type="html">&lt;span  style="widows: 2; text-transform: none; text-indent: 0px; letter-spacing: normal; border-collapse: separate; font: medium Arial,Microsoft Yahei,Simsun,sans-serif; white-space: normal; orphans: 2; color: #000000; word-spacing: 0px;"&gt;&#xD;
&lt;div style="line-height: 1.5; background-color: #ffffff; margin: 8px; font-family: verdana, Arial, Helvetica, sans-serif; color: #000000; font-size: 14px; background-origin: initial; background-clip: initial;"&gt;&#xD;
&lt;div style="text-indent: 0px; margin: 10px auto;"&gt;eoe上有源码,点击一个自定义图片按钮控件，弹出自定义的一个dialog..内含输入框可登陆.&lt;/div&gt;&#xD;
&lt;div style="text-indent: 0px; margin: 10px auto;"&gt;自定的图片按钮：ConnectButton.java&lt;/div&gt;&#xD;
&lt;div style="text-indent: 0px; margin: 10px auto;"&gt;对话框：RenrenDialog.java&lt;/div&gt;&#xD;
&lt;div style="text-indent: 0px; margin: 10px auto;"&gt;&amp;nbsp;&lt;/div&gt;&#xD;
&lt;div style="text-indent: 0px; margin: 10px auto;"&gt;传值&lt;br /&gt;Bundle bundle=new Bundle();bundle.putString("store", "数据来自Activity1");Intent mIntent=new Intent();&lt;br /&gt;mIntent.putExtras(bundle);&lt;/div&gt;&#xD;
&lt;div style="text-indent: 0px; margin: 10px auto;"&gt;获取 &lt;br /&gt;Bundle extras=getIntent().getExtras();&lt;/div&gt;&#xD;
&lt;div style="text-indent: 0px; margin: 10px auto;"&gt;if(extras!=null){data=extras.getString("store");}&lt;/div&gt;&#xD;
&lt;div style="text-indent: 0px; margin: 10px auto;"&gt;&amp;nbsp;&lt;/div&gt;&#xD;
&lt;div style="text-indent: 0px; margin: 10px auto;"&gt;Dialog&lt;/div&gt;&#xD;
&lt;div style="text-indent: 0px; margin: 10px auto;"&gt;&#xD;
&lt;div &gt;&#xD;
&lt;pre &gt;//根据不同事件弹出不同的窗口&lt;br /&gt;//showDialog(dialog)时调用这里&lt;br /&gt;@Override&#xD;
	protected Dialog onCreateDialog(int id) {&#xD;
		switch (id) {&#xD;
		case DIALOG1:&#xD;
			return buildDialog1(ActivityMain.this);&#xD;
&#xD;
		case DIALOG2:&#xD;
			return buildDialog2(ActivityMain.this);&#xD;
&#xD;
		case DIALOG3:&#xD;
			return buildDialog3(ActivityMain.this);&#xD;
		case DIALOG4:&#xD;
			return buildDialog4(ActivityMain.this);&#xD;
&#xD;
		}&#xD;
		return null;&#xD;
	}&lt;br /&gt;protected void onPrepareDialog(int id, Dialog dialog){&#xD;
		if(id==DIALOG1){&#xD;
			setTitle("测试");&#xD;
		}&#xD;
&lt;/pre&gt;&#xD;
&lt;pre &gt;//这里很奇怪,好像是窗口打开时运行的东西，判断某个为dialog1时改变标题(嗯，)&lt;br /&gt;	}&#xD;
Button button1 = (Button) findViewById(R.id.button1);&#xD;
		button1.setOnClickListener(new OnClickListener() {&#xD;
			public void onClick(View v) {&#xD;
				showDialog(DIALOG1);&#xD;
			}&#xD;
		});&#xD;
&#xD;
		Button buttons2 = (Button) findViewById(R.id.buttons2);&#xD;
		buttons2.setOnClickListener(new OnClickListener() {&#xD;
			public void onClick(View v) {&#xD;
				showDialog(DIALOG2);&#xD;
			}&#xD;
		});&#xD;
//。。其他button&#xD;
&#xD;
private Dialog buildDialog1(Context context) {&#xD;
		AlertDialog.Builder builder = new AlertDialog.Builder(context);&#xD;
		builder.setIcon(R.drawable.alert_dialog_icon);&#xD;
		builder.setTitle(R.string.alert_dialog_two_buttons_title);&#xD;
		builder.setPositiveButton(R.string.alert_dialog_ok,&#xD;
				new DialogInterface.OnClickListener() {&#xD;
					public void onClick(DialogInterface dialog, int whichButton) {&#xD;
&#xD;
						setTitle("点击了对话框上的确定按钮");&#xD;
					}&#xD;
				});&#xD;
		builder.setNegativeButton(R.string.alert_dialog_cancel,&#xD;
				new DialogInterface.OnClickListener() {&#xD;
					public void onClick(DialogInterface dialog, int whichButton) {&#xD;
&#xD;
						setTitle("点击了对话框上的取消按钮");&#xD;
					}&#xD;
				});&#xD;
		return builder.create();&#xD;
&#xD;
	}//弹出窗口信息&#xD;
&lt;/pre&gt;&#xD;
&lt;pre &gt;&lt;p&gt;private Dialog buildDialog3(Context context) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;LayoutInflater inflater = LayoutInflater.from(this);&lt;br /&gt;&amp;nbsp;&amp;nbsp;final View textEntryView = inflater.inflate(//在dialog内放入实例化的view，定义所需的内容，如登录信息等&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;R.layout.alert_dialog_text_entry, null);&lt;br /&gt;&amp;nbsp;&amp;nbsp;AlertDialog.Builder builder = new AlertDialog.Builder(context);&lt;br /&gt;&amp;nbsp;&amp;nbsp;builder.setIcon(R.drawable.alert_dialog_icon);&lt;br /&gt;&amp;nbsp;&amp;nbsp;builder.setTitle(R.string.alert_dialog_text_entry);&lt;br /&gt;&amp;nbsp;&amp;nbsp;builder.setView(textEntryView);&lt;br /&gt;&amp;nbsp;&amp;nbsp;builder.setPositiveButton(R.string.alert_dialog_ok,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;new DialogInterface.OnClickListener() {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public void onClick(DialogInterface dialog, int whichButton) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;setTitle("点击了对话框上的确定按钮");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;});&lt;br /&gt;&amp;nbsp;&amp;nbsp;builder.setNegativeButton(R.string.alert_dialog_cancel,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;new DialogInterface.OnClickListener() {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public void onClick(DialogInterface dialog, int whichButton) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;setTitle("点击了对话框上的取消按钮");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;});&lt;br /&gt;&amp;nbsp;&amp;nbsp;return builder.create();&lt;br /&gt;&amp;nbsp;}&lt;/p&gt;&#xD;
&lt;p&gt;private Dialog buildDialog4(Context context) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;ProgressDialog dialog = new ProgressDialog(context);//Loading 之前都是alertDialog，这里是ProgressDialog&lt;br /&gt;&amp;nbsp;&amp;nbsp;dialog.setTitle("正在下载歌曲");&lt;br /&gt;&amp;nbsp;&amp;nbsp;dialog.setMessage("请稍候&amp;hellip;&amp;hellip;");&lt;br /&gt;&amp;nbsp;&amp;nbsp;return&amp;nbsp; dialog;&lt;br /&gt;&amp;nbsp;}&lt;/p&gt;&lt;/pre&gt;&#xD;
&lt;pre &gt;&lt;/pre&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div style="text-indent: 0px; margin: 10px auto;"&gt;待续&lt;/div&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;/span&gt;&lt;img src="http://www.cnblogs.com/zwl12549/aggbug/2020289.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/zwl12549/archive/2011/04/18/2020289.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/zwl12549/archive/2011/04/13/2015366.html</id><title type="text">Android使用AttributeSet自定义控件的方法</title><summary type="text">所谓自定义控件(或称组件)也就是编写自己的控件类型,而非Android中提供的标准的控件,如TextView,CheckBox等等.不过自定义的控件一般也都是从标准控件继承来的,或者是多种控件组合,或者是对标准控件的属性进行改变而得到的自己满意的控件. 自定义控件可能会有很多种方法,这里只介绍我要介绍的方法. 在这种方法中,大概的步骤是这样的 1.我们的自定义控件和其他的控件一样,应该写成一个类,而这个类的属性是是有自己来决定的. 2.我们要在res/values目录下建立一个attrs.xml的文件,并在此文件中增加对控件的属性的定义. 3.使用AttributeSet来完成控件类的构造函数</summary><published>2011-04-13T14:21:00Z</published><updated>2011-04-13T14:21:00Z</updated><author><name>子午</name><uri>http://www.cnblogs.com/zwl12549/</uri></author><link rel="alternate" href="http://www.cnblogs.com/zwl12549/archive/2011/04/13/2015366.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/zwl12549/archive/2011/04/13/2015366.html"/><content type="html">所谓自定义控件(或称组件)也就是编写自己的控件类型,而非Android中提供的标准的控件,如TextView,CheckBox等等.不过自定义的控件一般也都是从标准控件继承来的,或者是多种控件组合,或者是对标准控件的属性进行改变而得到的自己满意的控件.&#xD;
&lt;p&gt;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt; 自定义控件可能会有很多种方法,这里只介绍我要介绍的方法.&lt;/p&gt;&#xD;
&lt;p&gt;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt; 在这种方法中,大概的步骤是这样的&lt;/p&gt;&#xD;
&lt;p&gt;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt; 1.我们的自定义控件和其他的控件一样,应该写成一个类,而这个类的属性是是有自己来决定的.&lt;/p&gt;&#xD;
&lt;p&gt;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt; 2.我们要在res/values目录下建立一个attrs.xml的文件,并在此文件中增加对控件的属性的定义.&lt;/p&gt;&#xD;
&lt;p&gt;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt; 3.使用AttributeSet来完成控件类的构造函数,并在构造函数中将自定义控件类中变量与attrs.xml中的属性连接起来.&lt;/p&gt;&#xD;
&lt;p&gt;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt; 4.在自定义控件类中使用这些已经连接的属性变量.&lt;/p&gt;&#xD;
&lt;p&gt;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt; 5.将自定义的控件类定义到布局用的xml文件中去.&lt;/p&gt;&#xD;
&lt;p&gt;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt; 6.在界面中生成此自定义控件类对象,并加以使用.&lt;/p&gt;&#xD;
&lt;p&gt;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt; 好了,按照上述的方法,我们来看看&lt;a href="http://blog.csdn.net/Android_Tutor/archive/2010/04/20/5508615.aspx"&gt;http://blog.csdn.net/Android_Tutor/archive/2010/04/20/5508615.aspx&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt; 博客中的实例代码,按步骤加以解释:&lt;/p&gt;&#xD;
&lt;p&gt;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt; //---------------------------------------------------------------------------------&lt;/p&gt;&#xD;
&lt;p&gt;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt; 1. 定义自己的控件类:--------------------------------------------代码1.&lt;/p&gt;&#xD;
&lt;p&gt;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt; package com.android.tutor;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&lt;br /&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt; import android.content.Context;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&lt;br /&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt; import android.content.res.TypedArray;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&lt;br /&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt; import android.graphics.Canvas;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&lt;br /&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt; import android.graphics.Color;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&lt;br /&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt; import android.graphics.Paint;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&lt;br /&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt; import android.graphics.Rect;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&lt;br /&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt; import android.graphics.Paint.Style;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&lt;br /&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt; import android.util.AttributeSet;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&lt;br /&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt; import android.view.View;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&lt;br /&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt; public class &lt;span color="#ed1c24" style="color: #ed1c24;"&gt;MyView&lt;/span&gt; extends View&lt;br /&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt; {&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&lt;br /&gt;&lt;span color="#ffc20e" style="color: #ffc20e;"&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt; private Paint mPaint;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&lt;br /&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt; private Context mContext;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt; private static final String mString = "Welcome to Mr Wei's blog";&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&lt;br /&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&lt;br /&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt; public MyView(Context context)&lt;br /&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt; {&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&lt;br /&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt; super(context);&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&lt;br /&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt; mPaint = new Paint();&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&lt;br /&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt; }&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&lt;br /&gt;&lt;span color="#2f3699" style="color: #2f3699;"&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt; public MyView(Context context,AttributeSet attrs)&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&lt;br /&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt; {&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&lt;br /&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt; super(context,attrs);&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&lt;br /&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt; mPaint = new Paint();&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&lt;br /&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&lt;br /&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt; TypedArray a = context.obtainStyledAttributes(attrs,R.styleable.MyView);&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&lt;br /&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt; int textColor = a.getColor(R.styleable.MyView_textColor,0XFFFFFFFF);&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&lt;br /&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt; float textSize = a.getDimension(R.styleable.MyView_textSize, 36);&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&lt;br /&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&lt;br /&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt; mPaint.setTextSize(textSize);&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&lt;br /&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt; mPaint.setColor(textColor);&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&lt;br /&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&lt;br /&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt; a.recycle();&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&lt;br /&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt; }&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&lt;br /&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt; &lt;span color="#22b14c" style="color: #22b14c;"&gt;@Override&lt;br /&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt; protected void onDraw(Canvas canvas)&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span color="#22b14c" style="color: #22b14c;"&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt; {&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&lt;br /&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt; // TODO Auto-generated method stub&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&lt;br /&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt; super.onDraw(canvas);&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&lt;br /&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt; //设置填充&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&lt;br /&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt; mPaint.setStyle(Style.FILL);&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&lt;br /&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&lt;br /&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt; //画一个矩形,前俩个是矩形左上角坐标，后面俩个是右下角坐标&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&lt;br /&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt; canvas.drawRect(new Rect(10, 10, 100, 100), mPaint);&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&lt;br /&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&lt;br /&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt; mPaint.setColor(Color.BLUE);&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&lt;br /&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt; //绘制文字&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&lt;br /&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt; canvas.drawText(mString, 10, 110, mPaint);&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&lt;br /&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt; }&lt;/span&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&lt;br /&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt; }&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt; 代码1定义了一个自定义控件,名字为MyView,是从View类继承而来,也就是说它本身就是一种View,只是在View基础上加工而成了我们自己的自定义控件MyView.在此类种黄色的两行变量是我们新的属性变量.&lt;/p&gt;&#xD;
&lt;p&gt;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt; //---------------------------------------------------------------------------------&lt;/p&gt;&#xD;
&lt;p&gt;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt; 2. 在res/values目录下建立一个attrs.xml的文件,并在此文件中增加对控件的属性的定义--代码2:&lt;/p&gt;&#xD;
&lt;p&gt;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt; &amp;lt;?xml version="1.0" encoding="utf-8"?&amp;gt;&lt;br /&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt; &amp;lt;resources&amp;gt;&lt;br /&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt; &amp;lt;declare-styleable name="&lt;span color="#ed1c24" style="color: #ed1c24;"&gt;MyView&lt;/span&gt;"&amp;gt;&lt;br /&gt;&lt;span color="#ffc20e" style="color: #ffc20e;"&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt; &amp;lt;attr name="textColor" format="color" /&amp;gt;&lt;br /&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt; &amp;lt;attr name="textSize" format="dimension" /&amp;gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;lt;/declare-styleable&amp;gt;&lt;br /&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt; &amp;lt;/resources&amp;gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt; 在&amp;lt;resources&amp;gt;标签下使用&amp;lt;declare-styleable name="&lt;span color="#ed1c24" style="color: #ed1c24;"&gt;MyView&lt;/span&gt;"&amp;gt;标签来告诉框架它包含的属性就是自定义控件MyView中的属性.黄色的两其实就对应了代码1中黄色的变量.&lt;/p&gt;&#xD;
&lt;p&gt;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt; //---------------------------------------------------------------------------------&lt;/p&gt;&#xD;
&lt;p&gt;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt; 3.使用AttributeSet来完成控件类的构造函数,并在构造函数中将自定义控件类中变量与attrs.xml中的属性连接起来.&lt;/p&gt;&#xD;
&lt;p&gt;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt; 我们再看一下代码1中的蓝色代码,其中使用&lt;span color="#2f3699" style="color: #2f3699;"&gt;AttributeSet&lt;/span&gt;&lt;span color="#000000" style="color: #000000;"&gt;来重载构造函数.在此函数中将类中的属性变量与代码二中定义的属性联系起来.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span color="#000000" style="color: #000000;"&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt; //---------------------------------------------------------------------------------&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt; 4.在自定义控件类中使用这些已经连接的属性变量.&lt;/p&gt;&#xD;
&lt;p&gt;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;我们看一下代码1中的黄色部分,就是对我们新定义的属性的使用.&lt;/p&gt;&#xD;
&lt;p&gt;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt; //---------------------------------------------------------------------------------&lt;/p&gt;&#xD;
&lt;p&gt;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt; 5.将自定义的控件类定义到布局用的xml文件中去.-----代码3：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt; 我们再看看布局的xml文件代码:&lt;/p&gt;&#xD;
&lt;p&gt;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt; &amp;lt;?xml&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;version="1.0" encoding="utf-8"?&amp;gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&lt;br /&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt; &amp;lt;LinearLayout&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;xmlns:android="&lt;a href="http://schemas.android.com/apk/res/android"&gt;http://schemas.android.com/apk/res/android&lt;/a&gt;"&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&lt;br /&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt; android:orientation="vertical"&lt;br /&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt; android:layout_width="fill_parent"&lt;br /&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt; android:layout_height="fill_parent"&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&lt;br /&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt; &amp;lt;TextView&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;android:layout_width="fill_parent"&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&lt;br /&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt; android:layout_height="wrap_content"&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&lt;br /&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt; android:text="@string/hello"&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;/&amp;gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span color="#ed1c24" style="color: #ed1c24;"&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt; &amp;lt;com.android.tutor.MyView&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt; android:layout_width="fill_parent"&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&lt;br /&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt; android:layout_height="fill_parent"&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;test:textSize="20px"&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;test:textColor="#fff" /&amp;gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt; &amp;lt;/LinearLayout&amp;gt;&lt;br /&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt; 其中红色部分在布局中引用了我们MyView控件.&lt;/p&gt;&#xD;
&lt;p&gt;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt; //---------------------------------------------------------------------------------&lt;/p&gt;&#xD;
&lt;p&gt;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt; 6.在界面中生成此自定义控件类对象,并加以使用.--------代码4.&lt;/p&gt;&#xD;
&lt;p&gt;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt;&amp;nbsp;&lt;wbr&gt;&lt;/wbr&gt;&lt;wbr&gt;&lt;/wbr&gt; //---------------------------------------------------------------------------------&lt;/p&gt;&lt;img src="http://www.cnblogs.com/zwl12549/aggbug/2015366.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/zwl12549/archive/2011/04/13/2015366.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/zwl12549/archive/2011/04/07/2007748.html</id><title type="text">口碑apk反编译后研究中</title><summary type="text">manifest&amp;lt;application .. android:name=&amp;quot;KoubeiApp&amp;quot;&amp;gt;KoubeiApp.java应该是应用程序获取客户端一些通用信息,跟.net，global类似static { fileName = &amp;quot;config.properties&amp;quot;; sp = null; DEVICE_MODEL = Build.MODEL; StringBuilder localStringBuilder1 = new StringBuilder().append(&amp;quot;android_&amp;quot;); String str1 </summary><published>2011-04-07T04:40:00Z</published><updated>2011-04-07T04:40:00Z</updated><author><name>子午</name><uri>http://www.cnblogs.com/zwl12549/</uri></author><link rel="alternate" href="http://www.cnblogs.com/zwl12549/archive/2011/04/07/2007748.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/zwl12549/archive/2011/04/07/2007748.html"/><content type="html">&lt;p&gt;manifest&lt;/p&gt;&#xD;
&lt;p&gt;&amp;lt;application .. android:name="KoubeiApp"&amp;gt;&lt;/p&gt;&#xD;
&lt;p&gt;KoubeiApp.java应该是应用程序获取客户端一些通用信息,跟.net，global类似&lt;/p&gt;&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&#xD;
&lt;pre&gt;&lt;div&gt;&lt;span style="color: #0000ff;"&gt;static&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;  {&lt;br /&gt;    fileName &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;config.properties&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;    sp &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;    DEVICE_MODEL &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; Build.MODEL;&lt;br /&gt;    StringBuilder localStringBuilder1 &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; StringBuilder().append(&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;android_&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br /&gt;    String str1 &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; Build.VERSION.SDK;&lt;br /&gt;    CLIENT_OS &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; str1;&lt;br /&gt;    CLIENT_VERSION &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;1.3&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;    CLIENT_ID &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;00000000000000&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;    CLIENT_POS_X &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;""&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;    CLIENT_POS_Y &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;""&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;    CLIENT_LOCAL_CITYNAME &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;鍖椾含&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;    CLIENT_LOCAL_CITYID &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;99&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;    CLIENT_SOURCE &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;koubei&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;    CLIENT_CITY_NAME &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;    CLIENT_CITY_ID &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;    CLIENT_SCREEN_SIZE &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;320*480&lt;/span&gt;&lt;span style="color: #000000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;    StringBuilder localStringBuilder2 &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; StringBuilder();&lt;br /&gt;    String str2 &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; Build.MODEL;&lt;br /&gt;    StringBuilder localStringBuilder3 &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; localStringBuilder2.append(str2);&lt;br /&gt;    String str3 &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; Build.VERSION.RELEASE;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;p&gt;getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);&lt;/p&gt;&#xD;
&lt;p&gt;放在onCreate后，setControlView之前,全屏(隐藏上方电量等属性)&lt;/p&gt;&#xD;
&lt;p&gt;setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);设置屏幕竖排，横排或其他（枚举）；&lt;/p&gt;&#xD;
&lt;p&gt;关于闪屏(就是首页停留几秒然后跳转,像html的setTimeout和setInternal)&lt;/p&gt;&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&#xD;
&lt;pre&gt;&lt;div&gt;&lt;span style="color: #000000;"&gt;Message msg &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; Message();  msg.what &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; STOPSPLASH;  splashHandler.sendMessageDelayed(msg, SPLASHTIME);  &lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;p&gt;这个网上有好几种方式,目前研究不深，搞不清哪种比较好，&lt;a href="http://www.cnblogs.com/royenhome/archive/2010/05/05/1727971.html?login=1"&gt;http://www.cnblogs.com/royenhome/archive/2010/05/05/1727971.html?login=1&lt;/a&gt;他这里像是线程暂停,按下Menu键的话，直接跳过闪屏进入主界面;若按 下Back键的话，则直接退出主程序。还不错！我准备用这种方式&lt;/p&gt;&#xD;
&lt;p&gt;asynctask异步加载数据（有几种方法，关键要能用，找了这个）&lt;/p&gt;&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&#xD;
&lt;pre&gt;&lt;div&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;class&lt;/span&gt;&lt;span style="color: #000000;"&gt; Main extends Activity {   &lt;br /&gt;  &lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;private&lt;/span&gt;&lt;span style="color: #000000;"&gt; LayoutInflater m_flater &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;;   &lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;private&lt;/span&gt;&lt;span style="color: #000000;"&gt; LinearLayout mFlash;   &lt;br /&gt;  &lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;void&lt;/span&gt;&lt;span style="color: #000000;"&gt; onCreate(Bundle savedInstanceState) {   &lt;br /&gt;        super.onCreate(savedInstanceState);   &lt;br /&gt;        setContentView(R.layout.flash);   &lt;br /&gt;        mFlash &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; (LinearLayout) findViewById(R.id.mFlash);   &lt;br /&gt;        mFlash.startAnimation(AnimationUtils   &lt;br /&gt;                .loadAnimation(&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;, R.anim.fadeout));   &lt;br /&gt;        m_flater &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; getLayoutInflater();   &lt;br /&gt;        LoadMainTask task &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; LoadMainTask(&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;);   &lt;br /&gt;        task.execute(&lt;/span&gt;&lt;span style="color: #800000;"&gt;""&lt;/span&gt;&lt;span style="color: #000000;"&gt;);   &lt;br /&gt;  &lt;br /&gt;    }   &lt;br /&gt;  &lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt; View LoadMainView(LayoutInflater flater) {   &lt;br /&gt;        View view &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; flater.inflate(R.layout.main, &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;);   &lt;br /&gt;        Button btnOk &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; (Button) view.findViewById(R.id.BtnOk);   &lt;br /&gt;        btnOk.setOnClickListener(&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; OnClickListener() {   &lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;void&lt;/span&gt;&lt;span style="color: #000000;"&gt; onClick(View v) {   &lt;br /&gt;                finish();   &lt;br /&gt;            }   &lt;br /&gt;        });   &lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; view;   &lt;br /&gt;    }   &lt;br /&gt;  &lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;private&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;class&lt;/span&gt;&lt;span style="color: #000000;"&gt; LoadMainTask extends AsyncTask&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Object, Object, View&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; {   &lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt; LoadMainTask(Context context) {   &lt;br /&gt;        }   &lt;br /&gt;  &lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;protected&lt;/span&gt;&lt;span style="color: #000000;"&gt; View doInBackground(Object... &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;params&lt;/span&gt;&lt;span style="color: #000000;"&gt;) {   &lt;br /&gt;            View view &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;;   &lt;br /&gt;            view &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; LoadMainView(m_flater);   &lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt; 为了测试加了延时，大家可以在这一块加载资源，数据等   &lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;            &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;try&lt;/span&gt;&lt;span style="color: #000000;"&gt; {   &lt;br /&gt;                Thread.sleep(&lt;/span&gt;&lt;span style="color: #800080;"&gt;3000&lt;/span&gt;&lt;span style="color: #000000;"&gt;);   &lt;br /&gt;            } &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;catch&lt;/span&gt;&lt;span style="color: #000000;"&gt; (InterruptedException e) {   &lt;br /&gt;                e.printStackTrace();   &lt;br /&gt;            }   &lt;br /&gt;            &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; view;   &lt;br /&gt;        }   &lt;br /&gt;  &lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt; 执行完毕   &lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;protected&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;void&lt;/span&gt;&lt;span style="color: #000000;"&gt; onPostExecute(View view) {   &lt;br /&gt;            setContentView(view);   &lt;br /&gt;        }   &lt;br /&gt;    }   &lt;br /&gt;  &lt;br /&gt;}  &lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&#xD;
&lt;/div&gt;&#xD;
&#xD;
&lt;p&gt;退出时自动弹出框提示是否要退出~&lt;/p&gt;&#xD;
&#xD;
&lt;div onclick="cnblogs_code_show('f5a57610-c680-4b65-9e1a-675da72282cb')" style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&#xD;
&lt;div  id="cnblogs_code_open_f5a57610-c680-4b65-9e1a-675da72282cb"&gt;&#xD;
&lt;pre&gt;&lt;div&gt;&lt;span style="color: #008080;"&gt; 1&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt; boolean onKeyDown(&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;int&lt;/span&gt;&lt;span style="color: #000000;"&gt; keyCode, KeyEvent &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;event&lt;/span&gt;&lt;span style="color: #000000;"&gt;) {&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 2&lt;/span&gt; &lt;span style="color: #000000;"&gt;        &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt; TODO Auto-generated method stub&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 3&lt;/span&gt; &lt;span style="color: #008000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;        &lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 4&lt;/span&gt; &lt;span style="color: #000000;"&gt;        &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt;(keyCode &lt;/span&gt;&lt;span style="color: #000000;"&gt;==&lt;/span&gt;&lt;span style="color: #000000;"&gt; KeyEvent.KEYCODE_BACK ){&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 5&lt;/span&gt; &lt;span style="color: #000000;"&gt;            AlertDialog.Builder builder&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; AlertDialog.Builder(&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 6&lt;/span&gt; &lt;span style="color: #000000;"&gt;            builder.setTitle(&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;提示&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 7&lt;/span&gt; &lt;span style="color: #000000;"&gt;            builder.setMessage(&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;确定要退出程序?&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 8&lt;/span&gt; &lt;span style="color: #000000;"&gt;            builder.setPositiveButton(&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;确定&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;, &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; DialogInterface.OnClickListener() {&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 9&lt;/span&gt; &lt;span style="color: #000000;"&gt;                &lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;10&lt;/span&gt; &lt;span style="color: #000000;"&gt;                @Override&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;11&lt;/span&gt; &lt;span style="color: #000000;"&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;void&lt;/span&gt;&lt;span style="color: #000000;"&gt; onClick(DialogInterface dialog, &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;int&lt;/span&gt;&lt;span style="color: #000000;"&gt; which) {&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;12&lt;/span&gt; &lt;span style="color: #000000;"&gt;                    &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt; TODO Auto-generated method stub&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;13&lt;/span&gt; &lt;span style="color: #008000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000;"&gt;                    dialog.dismiss();&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;14&lt;/span&gt; &lt;span style="color: #000000;"&gt;                    finish();&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;15&lt;/span&gt; &lt;span style="color: #000000;"&gt;                }&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;16&lt;/span&gt; &lt;span style="color: #000000;"&gt;            });&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;17&lt;/span&gt; &lt;span style="color: #000000;"&gt;            builder.setNeutralButton(&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;取消&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;, &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; DialogInterface.OnClickListener() {&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;18&lt;/span&gt; &lt;span style="color: #000000;"&gt;                &lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;19&lt;/span&gt; &lt;span style="color: #000000;"&gt;                @Override&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;20&lt;/span&gt; &lt;span style="color: #000000;"&gt;                &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;void&lt;/span&gt;&lt;span style="color: #000000;"&gt; onClick(DialogInterface dialog, &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;int&lt;/span&gt;&lt;span style="color: #000000;"&gt; which) {&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;21&lt;/span&gt; &lt;span style="color: #000000;"&gt;                    &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt; TODO Auto-generated method stub&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;22&lt;/span&gt; &lt;span style="color: #008000;"&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;                    dialog.dismiss();&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;23&lt;/span&gt; &lt;span style="color: #000000;"&gt;                }&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;24&lt;/span&gt; &lt;span style="color: #000000;"&gt;            });&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;25&lt;/span&gt; &lt;span style="color: #000000;"&gt;            builder.show();&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;26&lt;/span&gt; &lt;span style="color: #000000;"&gt;            &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;true&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;27&lt;/span&gt; &lt;span style="color: #000000;"&gt;        }&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;else&lt;/span&gt;&lt;span style="color: #000000;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;28&lt;/span&gt; &lt;span style="color: #000000;"&gt;        &lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;29&lt;/span&gt; &lt;span style="color: #000000;"&gt;            &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; super.onKeyDown(keyCode, &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;event&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;30&lt;/span&gt; &lt;span style="color: #000000;"&gt;        }&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;31&lt;/span&gt; &lt;span style="color: #000000;"&gt;    }&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;/div&gt;&lt;img src="http://www.cnblogs.com/zwl12549/aggbug/2007748.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/zwl12549/archive/2011/04/07/2007748.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/zwl12549/archive/2011/04/07/2007578.html</id><title type="text">转：Android编程获取手机型号，本机电话号码，sdk版本及firmware版本号(即系统版本号)</title><summary type="text">Android开发平台中，可通过TelephonyManager 获取本机号码。Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--&amp;gt;TelephonyManager phoneMgr=(TelephonyManager)this.getSystemService(Context.TELEPHONY_SERVICE);txtPhoneNumber.setText(phoneMgr.getLine1Number()); //txtPhoneNumbe</summary><published>2011-04-07T02:37:00Z</published><updated>2011-04-07T02:37:00Z</updated><author><name>子午</name><uri>http://www.cnblogs.com/zwl12549/</uri></author><link rel="alternate" href="http://www.cnblogs.com/zwl12549/archive/2011/04/07/2007578.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/zwl12549/archive/2011/04/07/2007578.html"/><content type="html">&lt;p&gt;&lt;strong&gt;Android开发平台中，可通过&lt;span style="line-height: 18px; border-collapse: collapse; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; white-space: pre;"&gt;&lt;span  style="background-color: transparent; margin: 0px; color: #2b91af; font-size: 14px; vertical-align: baseline; background-origin: initial; background-clip: initial; border-width: 0px; padding: 0px;"&gt;&lt;a target="_blank" href="http://developer.android.com/reference/android/telephony/TelephonyManager.html"&gt;&lt;span color="#1a8bc8" style="color: #1a8bc8;"&gt;TelephonyManager&lt;/span&gt;&lt;/a&gt; &lt;/span&gt;&lt;span  style="background-color: transparent; margin: 0px; font-size: 14px; vertical-align: baseline; background-origin: initial; background-clip: initial; border-width: 0px; padding: 0px;"&gt;获取本机号码。&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="line-height: 18px; border-collapse: collapse; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; white-space: pre;"&gt;&lt;span  style="background-color: transparent; margin: 0px; color: #2b91af; font-size: 14px; vertical-align: baseline; background-origin: initial; background-clip: initial; border-width: 0px; padding: 0px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&#xD;
&lt;pre&gt;&lt;div&gt;&lt;!--&lt;br /&gt;&lt;br /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br /&gt;http://www.CodeHighlighter.com/&lt;br /&gt;&lt;br /&gt;--&gt;&lt;span style="color: #000000;"&gt;TelephonyManager phoneMgr=(TelephonyManager)this.getSystemService(Context.TELEPHONY_SERVICE);&lt;br /&gt;txtPhoneNumber.setText(phoneMgr.getLine1Number()); //txtPhoneNumber是一个EditText 用于显示手机号&lt;br /&gt;        &lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;p&gt;&lt;span style="line-height: 18px; border-collapse: collapse; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; white-space: pre;"&gt;&lt;span  style="background-color: transparent; margin: 0px; color: #2b91af; font-size: 14px; vertical-align: baseline; background-origin: initial; background-clip: initial; border-width: 0px; padding: 0px;"&gt;注:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="line-height: 18px; border-collapse: collapse; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; white-space: pre;"&gt;&lt;span  style="background-color: transparent; margin: 0px; color: #2b91af; font-size: 14px; vertical-align: baseline; background-origin: initial; background-clip: initial; border-width: 0px; padding: 0px;"&gt;根据Android的安全机制，在使用TelephonyManager时，必须在AndroidManifest.xml中添加&amp;lt;uses-permission android:name="READ_PHONE_STATE" /&amp;gt; 否则无法获得系统的许可。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="line-height: 18px; border-collapse: collapse; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; white-space: pre;"&gt;&lt;span  style="background-color: transparent; margin: 0px; color: #2b91af; font-size: 14px; vertical-align: baseline; background-origin: initial; background-clip: initial; border-width: 0px; padding: 0px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;手机型号 Build.MODEL&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;table  id="constants" style="margin: 0px 0px 1em 1em; width: 951px; border-collapse: collapse; empty-cells: show; font-size: 0.9em; border-width: 0px; padding: 0px;"&gt;&#xD;
&lt;tbody style="margin: 0px; border-width: 0px; padding: 0px;"&gt;&#xD;
&lt;tr  style="background-color: #f6f6f6; margin: 0px; border-width: 0px; padding: 0px;"&gt;&#xD;
&lt;td  style="text-align: right; padding-bottom: 6px; margin: 0px; padding-left: 12px; padding-right: 12px; vertical-align: top; padding-top: 6px; border: #cccccc 1px solid;"&gt;&lt;a href="http://developer.android.com/reference/java/lang/String.html" style="color: #006699; text-decoration: none;"&gt;String&lt;/a&gt;&lt;/td&gt;&#xD;
&lt;td  style="text-align: left; padding-bottom: 6px; margin: 0px; padding-left: 12px; padding-right: 12px; vertical-align: top; padding-top: 6px; border: #cccccc 1px solid;"&gt;&lt;a href="http://developer.android.com/reference/android/os/Build.html#MODEL" style="color: #006699; text-decoration: none;"&gt;MODEL&lt;/a&gt;&lt;/td&gt;&#xD;
&lt;td width="100%"  style="text-align: left; padding-bottom: 6px; margin: 0px; padding-left: 12px; padding-right: 12px; vertical-align: top; padding-top: 6px; border: #cccccc 1px solid;"&gt;The end-user-visible name for the end product.&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;/tbody&gt;&#xD;
&lt;/table&gt;&#xD;
&lt;p&gt;&lt;span style="line-height: 18px; border-collapse: collapse; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; white-space: pre; color: #000000;"&gt;&lt;span  style="background-color: transparent; margin: 0px; font-size: 14px; vertical-align: baseline; background-origin: initial; background-clip: initial; padding: 0px;"&gt;&lt;strong&gt;sdk版本 Build.VERSION.SDK&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;table  id="constants" style="margin: 0px 0px 1em 1em; width: 951px; border-collapse: collapse; empty-cells: show; font-size: 0.9em; border-width: 0px; padding: 0px;"&gt;&#xD;
&lt;tbody style="margin: 0px; border-width: 0px; padding: 0px;"&gt;&#xD;
&lt;tr  style="margin: 0px; border-width: 0px; padding: 0px;"&gt;&#xD;
&lt;td  style="text-align: right; padding-bottom: 6px; margin: 0px; padding-left: 12px; padding-right: 12px; vertical-align: top; padding-top: 6px; border: #cccccc 1px solid;"&gt;&lt;a href="http://developer.android.com/reference/java/lang/String.html" style="color: #006699; text-decoration: none;"&gt;String&lt;/a&gt;&lt;/td&gt;&#xD;
&lt;td  style="text-align: left; padding-bottom: 6px; margin: 0px; padding-left: 12px; padding-right: 12px; vertical-align: top; padding-top: 6px; border: #cccccc 1px solid;"&gt;&lt;a href="http://developer.android.com/reference/android/os/Build.VERSION.html#SDK" style="color: #006699; text-decoration: none;"&gt;SDK&lt;/a&gt;&lt;/td&gt;&#xD;
&lt;td width="100%"  style="text-align: left; padding-bottom: 6px; margin: 0px; padding-left: 12px; padding-right: 12px; vertical-align: top; padding-top: 6px; border: #cccccc 1px solid;"&gt;&lt;em&gt;This constant is deprecated. Use &lt;code style="line-height: 1em; font-family: monospace; color: #007000;"&gt;&lt;a href="http://developer.android.com/reference/android/os/Build.VERSION.html#SDK_INT" style="color: #006699; text-decoration: none;"&gt;SDK_INT&lt;/a&gt;&lt;/code&gt; to easily get this as an integer.&lt;/em&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;/tbody&gt;&#xD;
&lt;/table&gt;&#xD;
&lt;p&gt;&lt;span style="line-height: 18px; border-collapse: collapse; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; white-space: pre; color: #000000;"&gt;&lt;span  style="background-color: transparent; margin: 0px; font-size: 14px; vertical-align: baseline; background-origin: initial; background-clip: initial; padding: 0px;"&gt;&lt;strong&gt;及frimware版本号(系统版本号) &lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="line-height: 18px; border-collapse: collapse; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; white-space: pre;"&gt;&lt;strong&gt;Build.VERSION.RELEASE&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;table  id="constants" style="margin: 0px 0px 1em 1em; width: 951px; border-collapse: collapse; empty-cells: show; font-size: 0.9em; border-width: 0px; padding: 0px;"&gt;&#xD;
&lt;tbody style="margin: 0px; border-width: 0px; padding: 0px;"&gt;&#xD;
&lt;tr  style="background-color: #f6f6f6; margin: 0px; border-width: 0px; padding: 0px;"&gt;&#xD;
&lt;td  style="text-align: right; padding-bottom: 6px; margin: 0px; padding-left: 12px; padding-right: 12px; vertical-align: top; padding-top: 6px; border: #cccccc 1px solid;"&gt;&lt;a href="http://developer.android.com/reference/java/lang/String.html" style="color: #006699; text-decoration: none;"&gt;String&lt;/a&gt;&lt;/td&gt;&#xD;
&lt;td  style="text-align: left; padding-bottom: 6px; margin: 0px; padding-left: 12px; padding-right: 12px; vertical-align: top; padding-top: 6px; border: #cccccc 1px solid;"&gt;&lt;a href="http://developer.android.com/reference/android/os/Build.VERSION.html#RELEASE" style="color: #006699; text-decoration: none;"&gt;RELEASE&lt;/a&gt;&lt;/td&gt;&#xD;
&lt;td width="100%"  style="text-align: left; padding-bottom: 6px; margin: 0px; padding-left: 12px; padding-right: 12px; vertical-align: top; padding-top: 6px; border: #cccccc 1px solid;"&gt;The user-visible version string.&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;/tbody&gt;&#xD;
&lt;/table&gt;&#xD;
&lt;p&gt;&lt;span style="line-height: 18px; border-collapse: collapse; white-space: pre;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&#xD;
&lt;pre&gt;&lt;div&gt;&lt;!--&lt;br /&gt;&lt;br /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br /&gt;http://www.CodeHighlighter.com/&lt;br /&gt;&lt;br /&gt;--&gt;&lt;span style="color: #000000;"&gt;private void loadPhoneStatus()&lt;br /&gt;{&lt;br /&gt;  TelephonyManager phoneMgr=(TelephonyManager)this.getSystemService(Context.TELEPHONY_SERVICE);&lt;br /&gt;  txtPhoneModel.setText(Build.MODEL); //手机型号&lt;br /&gt;  txtPhoneNumber.setText(phoneMgr.getLine1Number());//本机电话号码&lt;br /&gt;  txtSdkVersion.setText(Build.VERSION.SDK);//SDK版本号&lt;br /&gt;  txtOsVersion.setText(Build.VERSION.RELEASE);//Firmware/OS 版本号&lt;br /&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;p&gt;&lt;span style="line-height: 18px; border-collapse: collapse; white-space: pre;"&gt;事实上，Build能向我们提供包括 硬件厂商，硬件编号，序列号等很多信息 调用方法也都同上，很简单。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;table  id="constants" style="margin: 0px 0px 1em 1em; width: 951px; border-collapse: collapse; empty-cells: show; font-size: 0.9em; border-width: 0px; padding: 0px;"&gt;&#xD;
&lt;tbody style="margin: 0px; border-width: 0px; padding: 0px;"&gt;&#xD;
&lt;tr  style="background-color: #f6f6f6; margin: 0px; border-width: 0px; padding: 0px;"&gt;&#xD;
&lt;td  style="text-align: right; padding-bottom: 6px; margin: 0px; padding-left: 12px; padding-right: 12px; vertical-align: top; padding-top: 6px; border: #cccccc 1px solid;"&gt;&lt;a href="http://developer.android.com/reference/java/lang/String.html" style="color: #006699; text-decoration: none;"&gt;String&lt;/a&gt;&lt;/td&gt;&#xD;
&lt;td  style="text-align: left; padding-bottom: 6px; margin: 0px; padding-left: 12px; padding-right: 12px; vertical-align: top; padding-top: 6px; border: #cccccc 1px solid;"&gt;&lt;a href="http://developer.android.com/reference/android/os/Build.html#BOARD" style="color: #006699; text-decoration: none;"&gt;BOARD&lt;/a&gt;&lt;/td&gt;&#xD;
&lt;td width="100%"  style="text-align: left; padding-bottom: 6px; margin: 0px; padding-left: 12px; padding-right: 12px; vertical-align: top; padding-top: 6px; border: #cccccc 1px solid;"&gt;The name of the underlying board, like "goldfish".&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr  style="margin: 0px; border-width: 0px; padding: 0px;"&gt;&#xD;
&lt;td  style="text-align: right; padding-bottom: 6px; margin: 0px; padding-left: 12px; padding-right: 12px; vertical-align: top; padding-top: 6px; border: #cccccc 1px solid;"&gt;&lt;a href="http://developer.android.com/reference/java/lang/String.html" style="color: #006699; text-decoration: none;"&gt;String&lt;/a&gt;&lt;/td&gt;&#xD;
&lt;td  style="text-align: left; padding-bottom: 6px; margin: 0px; padding-left: 12px; padding-right: 12px; vertical-align: top; padding-top: 6px; border: #cccccc 1px solid;"&gt;&lt;a href="http://developer.android.com/reference/android/os/Build.html#BOOTLOADER" style="color: #006699; text-decoration: none;"&gt;BOOTLOADER&lt;/a&gt;&lt;/td&gt;&#xD;
&lt;td width="100%"  style="text-align: left; padding-bottom: 6px; margin: 0px; padding-left: 12px; padding-right: 12px; vertical-align: top; padding-top: 6px; border: #cccccc 1px solid;"&gt;The system bootloader version number.&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr  style="background-color: #f6f6f6; margin: 0px; border-width: 0px; padding: 0px;"&gt;&#xD;
&lt;td  style="text-align: right; padding-bottom: 6px; margin: 0px; padding-left: 12px; padding-right: 12px; vertical-align: top; padding-top: 6px; border: #cccccc 1px solid;"&gt;&lt;a href="http://developer.android.com/reference/java/lang/String.html" style="color: #006699; text-decoration: none;"&gt;String&lt;/a&gt;&lt;/td&gt;&#xD;
&lt;td  style="text-align: left; padding-bottom: 6px; margin: 0px; padding-left: 12px; padding-right: 12px; vertical-align: top; padding-top: 6px; border: #cccccc 1px solid;"&gt;&lt;a href="http://developer.android.com/reference/android/os/Build.html#BRAND" style="color: #006699; text-decoration: none;"&gt;BRAND&lt;/a&gt;&lt;/td&gt;&#xD;
&lt;td width="100%"  style="text-align: left; padding-bottom: 6px; margin: 0px; padding-left: 12px; padding-right: 12px; vertical-align: top; padding-top: 6px; border: #cccccc 1px solid;"&gt;The brand (e.g., carrier) the software is customized for, if any.&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr  style="margin: 0px; border-width: 0px; padding: 0px;"&gt;&#xD;
&lt;td  style="text-align: right; padding-bottom: 6px; margin: 0px; padding-left: 12px; padding-right: 12px; vertical-align: top; padding-top: 6px; border: #cccccc 1px solid;"&gt;&lt;a href="http://developer.android.com/reference/java/lang/String.html" style="color: #006699; text-decoration: none;"&gt;String&lt;/a&gt;&lt;/td&gt;&#xD;
&lt;td  style="text-align: left; padding-bottom: 6px; margin: 0px; padding-left: 12px; padding-right: 12px; vertical-align: top; padding-top: 6px; border: #cccccc 1px solid;"&gt;&lt;a href="http://developer.android.com/reference/android/os/Build.html#CPU_ABI" style="color: #006699; text-decoration: none;"&gt;CPU_ABI&lt;/a&gt;&lt;/td&gt;&#xD;
&lt;td width="100%"  style="text-align: left; padding-bottom: 6px; margin: 0px; padding-left: 12px; padding-right: 12px; vertical-align: top; padding-top: 6px; border: #cccccc 1px solid;"&gt;The name of the instruction set (CPU type + ABI convention) of native code.&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr  style="background-color: #f6f6f6; margin: 0px; border-width: 0px; padding: 0px;"&gt;&#xD;
&lt;td  style="text-align: right; padding-bottom: 6px; margin: 0px; padding-left: 12px; padding-right: 12px; vertical-align: top; padding-top: 6px; border: #cccccc 1px solid;"&gt;&lt;a href="http://developer.android.com/reference/java/lang/String.html" style="color: #006699; text-decoration: none;"&gt;String&lt;/a&gt;&lt;/td&gt;&#xD;
&lt;td  style="text-align: left; padding-bottom: 6px; margin: 0px; padding-left: 12px; padding-right: 12px; vertical-align: top; padding-top: 6px; border: #cccccc 1px solid;"&gt;&lt;a href="http://developer.android.com/reference/android/os/Build.html#CPU_ABI2" style="color: #006699; text-decoration: none;"&gt;CPU_ABI2&lt;/a&gt;&lt;/td&gt;&#xD;
&lt;td width="100%"  style="text-align: left; padding-bottom: 6px; margin: 0px; padding-left: 12px; padding-right: 12px; vertical-align: top; padding-top: 6px; border: #cccccc 1px solid;"&gt;The name of the second instruction set (CPU type + ABI convention) of native code.&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr  style="margin: 0px; border-width: 0px; padding: 0px;"&gt;&#xD;
&lt;td  style="text-align: right; padding-bottom: 6px; margin: 0px; padding-left: 12px; padding-right: 12px; vertical-align: top; padding-top: 6px; border: #cccccc 1px solid;"&gt;&lt;a href="http://developer.android.com/reference/java/lang/String.html" style="color: #006699; text-decoration: none;"&gt;String&lt;/a&gt;&lt;/td&gt;&#xD;
&lt;td  style="text-align: left; padding-bottom: 6px; margin: 0px; padding-left: 12px; padding-right: 12px; vertical-align: top; padding-top: 6px; border: #cccccc 1px solid;"&gt;&lt;a href="http://developer.android.com/reference/android/os/Build.html#DEVICE" style="color: #006699; text-decoration: none;"&gt;DEVICE&lt;/a&gt;&lt;/td&gt;&#xD;
&lt;td width="100%"  style="text-align: left; padding-bottom: 6px; margin: 0px; padding-left: 12px; padding-right: 12px; vertical-align: top; padding-top: 6px; border: #cccccc 1px solid;"&gt;The name of the industrial design.&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr  style="background-color: #f6f6f6; margin: 0px; border-width: 0px; padding: 0px;"&gt;&#xD;
&lt;td  style="text-align: right; padding-bottom: 6px; margin: 0px; padding-left: 12px; padding-right: 12px; vertical-align: top; padding-top: 6px; border: #cccccc 1px solid;"&gt;&lt;a href="http://developer.android.com/reference/java/lang/String.html" style="color: #006699; text-decoration: none;"&gt;String&lt;/a&gt;&lt;/td&gt;&#xD;
&lt;td  style="text-align: left; padding-bottom: 6px; margin: 0px; padding-left: 12px; padding-right: 12px; vertical-align: top; padding-top: 6px; border: #cccccc 1px solid;"&gt;&lt;a href="http://developer.android.com/reference/android/os/Build.html#DISPLAY" style="color: #006699; text-decoration: none;"&gt;DISPLAY&lt;/a&gt;&lt;/td&gt;&#xD;
&lt;td width="100%"  style="text-align: left; padding-bottom: 6px; margin: 0px; padding-left: 12px; padding-right: 12px; vertical-align: top; padding-top: 6px; border: #cccccc 1px solid;"&gt;A build ID string meant for displaying to the user&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr  style="margin: 0px; border-width: 0px; padding: 0px;"&gt;&#xD;
&lt;td  style="text-align: right; padding-bottom: 6px; margin: 0px; padding-left: 12px; padding-right: 12px; vertical-align: top; padding-top: 6px; border: #cccccc 1px solid;"&gt;&lt;a href="http://developer.android.com/reference/java/lang/String.html" style="color: #006699; text-decoration: none;"&gt;String&lt;/a&gt;&lt;/td&gt;&#xD;
&lt;td  style="text-align: left; padding-bottom: 6px; margin: 0px; padding-left: 12px; padding-right: 12px; vertical-align: top; padding-top: 6px; border: #cccccc 1px solid;"&gt;&lt;a href="http://developer.android.com/reference/android/os/Build.html#FINGERPRINT" style="color: #006699; text-decoration: none;"&gt;FINGERPRINT&lt;/a&gt;&lt;/td&gt;&#xD;
&lt;td width="100%"  style="text-align: left; padding-bottom: 6px; margin: 0px; padding-left: 12px; padding-right: 12px; vertical-align: top; padding-top: 6px; border: #cccccc 1px solid;"&gt;A string that uniquely identifies this build.&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr  style="background-color: #f6f6f6; margin: 0px; border-width: 0px; padding: 0px;"&gt;&#xD;
&lt;td  style="text-align: right; padding-bottom: 6px; margin: 0px; padding-left: 12px; padding-right: 12px; vertical-align: top; padding-top: 6px; border: #cccccc 1px solid;"&gt;&lt;a href="http://developer.android.com/reference/java/lang/String.html" style="color: #006699; text-decoration: none;"&gt;String&lt;/a&gt;&lt;/td&gt;&#xD;
&lt;td  style="text-align: left; padding-bottom: 6px; margin: 0px; padding-left: 12px; padding-right: 12px; vertical-align: top; padding-top: 6px; border: #cccccc 1px solid;"&gt;&lt;a href="http://developer.android.com/reference/android/os/Build.html#HARDWARE" style="color: #006699; text-decoration: none;"&gt;HARDWARE&lt;/a&gt;&lt;/td&gt;&#xD;
&lt;td width="100%"  style="text-align: left; padding-bottom: 6px; margin: 0px; padding-left: 12px; padding-right: 12px; vertical-align: top; padding-top: 6px; border: #cccccc 1px solid;"&gt;The name of the hardware (from the kernel command line or /proc).&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr  style="margin: 0px; border-width: 0px; padding: 0px;"&gt;&#xD;
&lt;td  style="text-align: right; padding-bottom: 6px; margin: 0px; padding-left: 12px; padding-right: 12px; vertical-align: top; padding-top: 6px; border: #cccccc 1px solid;"&gt;&lt;a href="http://developer.android.com/reference/java/lang/String.html" style="color: #006699; text-decoration: none;"&gt;String&lt;/a&gt;&lt;/td&gt;&#xD;
&lt;td  style="text-align: left; padding-bottom: 6px; margin: 0px; padding-left: 12px; padding-right: 12px; vertical-align: top; padding-top: 6px; border: #cccccc 1px solid;"&gt;&lt;a href="http://developer.android.com/reference/android/os/Build.html#HOST" style="color: #006699; text-decoration: none;"&gt;HOST&lt;/a&gt;&lt;/td&gt;&#xD;
&lt;td width="100%"  style="text-align: left; padding-bottom: 6px; margin: 0px; padding-left: 12px; padding-right: 12px; vertical-align: top; padding-top: 6px; border: #cccccc 1px solid;"&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr  style="background-color: #f6f6f6; margin: 0px; border-width: 0px; padding: 0px;"&gt;&#xD;
&lt;td  style="text-align: right; padding-bottom: 6px; margin: 0px; padding-left: 12px; padding-right: 12px; vertical-align: top; padding-top: 6px; border: #cccccc 1px solid;"&gt;&lt;a href="http://developer.android.com/reference/java/lang/String.html" style="color: #006699; text-decoration: none;"&gt;String&lt;/a&gt;&lt;/td&gt;&#xD;
&lt;td  style="text-align: left; padding-bottom: 6px; margin: 0px; padding-left: 12px; padding-right: 12px; vertical-align: top; padding-top: 6px; border: #cccccc 1px solid;"&gt;&lt;a href="http://developer.android.com/reference/android/os/Build.html#ID" style="color: #006699; text-decoration: none;"&gt;ID&lt;/a&gt;&lt;/td&gt;&#xD;
&lt;td width="100%"  style="text-align: left; padding-bottom: 6px; margin: 0px; padding-left: 12px; padding-right: 12px; vertical-align: top; padding-top: 6px; border: #cccccc 1px solid;"&gt;Either a changelist number, or a label like "M4-rc20".&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr  style="margin: 0px; border-width: 0px; padding: 0px;"&gt;&#xD;
&lt;td  style="text-align: right; padding-bottom: 6px; margin: 0px; padding-left: 12px; padding-right: 12px; vertical-align: top; padding-top: 6px; border: #cccccc 1px solid;"&gt;&lt;a href="http://developer.android.com/reference/java/lang/String.html" style="color: #006699; text-decoration: none;"&gt;String&lt;/a&gt;&lt;/td&gt;&#xD;
&lt;td  style="text-align: left; padding-bottom: 6px; margin: 0px; padding-left: 12px; padding-right: 12px; vertical-align: top; padding-top: 6px; border: #cccccc 1px solid;"&gt;&lt;a href="http://developer.android.com/reference/android/os/Build.html#MANUFACTURER" style="color: #006699; text-decoration: none;"&gt;MANUFACTURER&lt;/a&gt;&lt;/td&gt;&#xD;
&lt;td width="100%"  style="text-align: left; padding-bottom: 6px; margin: 0px; padding-left: 12px; padding-right: 12px; vertical-align: top; padding-top: 6px; border: #cccccc 1px solid;"&gt;The manufacturer of the product/hardware.&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr  style="background-color: #f6f6f6; margin: 0px; border-width: 0px; padding: 0px;"&gt;&#xD;
&lt;td  style="text-align: right; padding-bottom: 6px; margin: 0px; padding-left: 12px; padding-right: 12px; vertical-align: top; padding-top: 6px; border: #cccccc 1px solid;"&gt;&lt;a href="http://developer.android.com/reference/java/lang/String.html" style="color: #006699; text-decoration: none;"&gt;String&lt;/a&gt;&lt;/td&gt;&#xD;
&lt;td  style="text-align: left; padding-bottom: 6px; margin: 0px; padding-left: 12px; padding-right: 12px; vertical-align: top; padding-top: 6px; border: #cccccc 1px solid;"&gt;&lt;a href="http://developer.android.com/reference/android/os/Build.html#MODEL" style="color: #006699; text-decoration: none;"&gt;MODEL&lt;/a&gt;&lt;/td&gt;&#xD;
&lt;td width="100%"  style="text-align: left; padding-bottom: 6px; margin: 0px; padding-left: 12px; padding-right: 12px; vertical-align: top; padding-top: 6px; border: #cccccc 1px solid;"&gt;The end-user-visible name for the end product.&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr  style="margin: 0px; border-width: 0px; padding: 0px;"&gt;&#xD;
&lt;td  style="text-align: right; padding-bottom: 6px; margin: 0px; padding-left: 12px; padding-right: 12px; vertical-align: top; padding-top: 6px; border: #cccccc 1px solid;"&gt;&lt;a href="http://developer.android.com/reference/java/lang/String.html" style="color: #006699; text-decoration: none;"&gt;String&lt;/a&gt;&lt;/td&gt;&#xD;
&lt;td  style="text-align: left; padding-bottom: 6px; margin: 0px; padding-left: 12px; padding-right: 12px; vertical-align: top; padding-top: 6px; border: #cccccc 1px solid;"&gt;&lt;a href="http://developer.android.com/reference/android/os/Build.html#PRODUCT" style="color: #006699; text-decoration: none;"&gt;PRODUCT&lt;/a&gt;&lt;/td&gt;&#xD;
&lt;td width="100%"  style="text-align: left; padding-bottom: 6px; margin: 0px; padding-left: 12px; padding-right: 12px; vertical-align: top; padding-top: 6px; border: #cccccc 1px solid;"&gt;The name of the overall product.&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr  style="background-color: #f6f6f6; margin: 0px; border-width: 0px; padding: 0px;"&gt;&#xD;
&lt;td  style="text-align: right; padding-bottom: 6px; margin: 0px; padding-left: 12px; padding-right: 12px; vertical-align: top; padding-top: 6px; border: #cccccc 1px solid;"&gt;&lt;a href="http://developer.android.com/reference/java/lang/String.html" style="color: #006699; text-decoration: none;"&gt;String&lt;/a&gt;&lt;/td&gt;&#xD;
&lt;td  style="text-align: left; padding-bottom: 6px; margin: 0px; padding-left: 12px; padding-right: 12px; vertical-align: top; padding-top: 6px; border: #cccccc 1px solid;"&gt;&lt;a href="http://developer.android.com/reference/android/os/Build.html#RADIO" style="color: #006699; text-decoration: none;"&gt;RADIO&lt;/a&gt;&lt;/td&gt;&#xD;
&lt;td width="100%"  style="text-align: left; padding-bottom: 6px; margin: 0px; padding-left: 12px; padding-right: 12px; vertical-align: top; padding-top: 6px; border: #cccccc 1px solid;"&gt;The radio firmware version number.&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr  style="margin: 0px; border-width: 0px; padding: 0px;"&gt;&#xD;
&lt;td  style="text-align: right; padding-bottom: 6px; margin: 0px; padding-left: 12px; padding-right: 12px; vertical-align: top; padding-top: 6px; border: #cccccc 1px solid;"&gt;&lt;a href="http://developer.android.com/reference/java/lang/String.html" style="color: #006699; text-decoration: none;"&gt;String&lt;/a&gt;&lt;/td&gt;&#xD;
&lt;td  style="text-align: left; padding-bottom: 6px; margin: 0px; padding-left: 12px; padding-right: 12px; vertical-align: top; padding-top: 6px; border: #cccccc 1px solid;"&gt;&lt;a href="http://developer.android.com/reference/android/os/Build.html#SERIAL" style="color: #006699; text-decoration: none;"&gt;SERIAL&lt;/a&gt;&lt;/td&gt;&#xD;
&lt;td width="100%"  style="text-align: left; padding-bottom: 6px; margin: 0px; padding-left: 12px; padding-right: 12px; vertical-align: top; padding-top: 6px; border: #cccccc 1px solid;"&gt;A hardware serial number, if available.&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr  style="background-color: #f6f6f6; margin: 0px; border-width: 0px; padding: 0px;"&gt;&#xD;
&lt;td  style="text-align: right; padding-bottom: 6px; margin: 0px; padding-left: 12px; padding-right: 12px; vertical-align: top; padding-top: 6px; border: #cccccc 1px solid;"&gt;&lt;a href="http://developer.android.com/reference/java/lang/String.html" style="color: #006699; text-decoration: none;"&gt;String&lt;/a&gt;&lt;/td&gt;&#xD;
&lt;td  style="text-align: left; padding-bottom: 6px; margin: 0px; padding-left: 12px; padding-right: 12px; vertical-align: top; padding-top: 6px; border: #cccccc 1px solid;"&gt;&lt;a href="http://developer.android.com/reference/android/os/Build.html#TAGS" style="color: #006699; text-decoration: none;"&gt;TAGS&lt;/a&gt;&lt;/td&gt;&#xD;
&lt;td width="100%"  style="text-align: left; padding-bottom: 6px; margin: 0px; padding-left: 12px; padding-right: 12px; vertical-align: top; padding-top: 6px; border: #cccccc 1px solid;"&gt;Comma-separated tags describing the build, like "unsigned,debug".&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr  style="margin: 0px; border-width: 0px; padding: 0px;"&gt;&#xD;
&lt;td  style="text-align: right; padding-bottom: 6px; margin: 0px; padding-left: 12px; padding-right: 12px; vertical-align: top; padding-top: 6px; border: #cccccc 1px solid;"&gt;long&lt;/td&gt;&#xD;
&lt;td  style="text-align: left; padding-bottom: 6px; margin: 0px; padding-left: 12px; padding-right: 12px; vertical-align: top; padding-top: 6px; border: #cccccc 1px solid;"&gt;&lt;a href="http://developer.android.com/reference/android/os/Build.html#TIME" style="color: #006699; text-decoration: none;"&gt;TIME&lt;/a&gt;&lt;/td&gt;&#xD;
&lt;td width="100%"  style="text-align: left; padding-bottom: 6px; margin: 0px; padding-left: 12px; padding-right: 12px; vertical-align: top; padding-top: 6px; border: #cccccc 1px solid;"&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr  style="background-color: #f6f6f6; margin: 0px; border-width: 0px; padding: 0px;"&gt;&#xD;
&lt;td  style="text-align: right; padding-bottom: 6px; margin: 0px; padding-left: 12px; padding-right: 12px; vertical-align: top; padding-top: 6px; border: #cccccc 1px solid;"&gt;&lt;a href="http://developer.android.com/reference/java/lang/String.html" style="color: #006699; text-decoration: none;"&gt;String&lt;/a&gt;&lt;/td&gt;&#xD;
&lt;td  style="text-align: left; padding-bottom: 6px; margin: 0px; padding-left: 12px; padding-right: 12px; vertical-align: top; padding-top: 6px; border: #cccccc 1px solid;"&gt;&lt;a href="http://developer.android.com/reference/android/os/Build.html#TYPE" style="color: #006699; text-decoration: none;"&gt;TYPE&lt;/a&gt;&lt;/td&gt;&#xD;
&lt;td width="100%"  style="text-align: left; padding-bottom: 6px; margin: 0px; padding-left: 12px; padding-right: 12px; vertical-align: top; padding-top: 6px; border: #cccccc 1px solid;"&gt;The type of build, like "user" or "eng".&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr  style="margin: 0px; border-width: 0px; padding: 0px;"&gt;&#xD;
&lt;td  style="text-align: right; padding-bottom: 6px; margin: 0px; padding-left: 12px; padding-right: 12px; vertical-align: top; padding-top: 6px; border: #cccccc 1px solid;"&gt;&lt;a href="http://developer.android.com/reference/java/lang/String.html" style="color: #006699; text-decoration: none;"&gt;String&lt;/a&gt;&lt;/td&gt;&#xD;
&lt;td  style="text-align: left; padding-bottom: 6px; margin: 0px; padding-left: 12px; padding-right: 12px; vertical-align: top; padding-top: 6px; border: #cccccc 1px solid;"&gt;&lt;a href="http://developer.android.com/reference/android/os/Build.html#UNKNOWN" style="color: #006699; text-decoration: none;"&gt;UNKNOWN&lt;/a&gt;&lt;/td&gt;&#xD;
&lt;td width="100%"  style="text-align: left; padding-bottom: 6px; margin: 0px; padding-left: 12px; padding-right: 12px; vertical-align: top; padding-top: 6px; border: #cccccc 1px solid;"&gt;Value used for when a build property is unknown.&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr  style="background-color: #f6f6f6; margin: 0px; border-width: 0px; padding: 0px;"&gt;&#xD;
&lt;td  style="text-align: right; padding-bottom: 6px; margin: 0px; padding-left: 12px; padding-right: 12px; vertical-align: top; padding-top: 6px; border: #cccccc 1px solid;"&gt;&lt;a href="http://developer.android.com/reference/java/lang/String.html" style="color: #006699; text-decoration: none;"&gt;String&lt;/a&gt;&lt;/td&gt;&#xD;
&lt;td  style="text-align: left; padding-bottom: 6px; margin: 0px; padding-left: 12px; padding-right: 12px; vertical-align: top; padding-top: 6px; border: #cccccc 1px solid;"&gt;&lt;a href="http://developer.android.com/reference/android/os/Build.html#USER" style="color: #006699; text-decoration: none;"&gt;USER&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;/tbody&gt;&#xD;
&lt;/table&gt;&#xD;
&lt;p&gt;&lt;span style="font-family: arial, sans-serif; color: #333333; font-size: x-large;"&gt;&lt;span style="line-height: normal; font-size: 19px;"&gt;最近在做韩国一家公司的Android平台软件开发，我的手机号是韩国的啦。所以看到010打头的号码，别太惊讶..&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="line-height: 18px; border-collapse: collapse; white-space: pre;"&gt;&lt;span style="line-height: normal; border-collapse: separate; font-family: arial, sans-serif; white-space: normal; color: #333333; font-size: 19px;"&gt;&lt;img src="http://pic002.cnblogs.com/images/2011/110528/2011010914513950.png" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="line-height: 18px; border-collapse: collapse; white-space: pre;"&gt;&lt;span style="line-height: normal; border-collapse: separate; font-family: arial, sans-serif; white-space: normal; color: #333333; font-size: 19px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="line-height: 18px; border-collapse: collapse; white-space: pre;"&gt;&lt;span style="line-height: normal; border-collapse: separate; font-family: arial, sans-serif; white-space: normal; color: #333333; font-size: 19px;"&gt;转：&lt;a href="http://www.cnblogs.com/mainroadlee/archive/2011/01/11/Android_Network_State_Checking_And_Setting.html"&gt;http://www.cnblogs.com/mainroadlee/archive/2011/01/11/Android_Network_State_Checking_And_Setting.html&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/zwl12549/aggbug/2007578.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/zwl12549/archive/2011/04/07/2007578.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/zwl12549/archive/2011/03/29/1999223.html</id><title type="text">Jquery getJSON（） 序列化类以及集合（转）</title><summary type="text">getJSON与aspx准备工作&amp;#183;Customer类public class Customer{public int Unid { get; set; }public string CustomerName { get; set; }public string Memo { get; set; }public string Other { get; set; }}（一）ashxCustomer customer = new Customer { Unid=1,CustomerName=&amp;quot;宋江&amp;quot;,Memo=&amp;quot;天魁星&amp;quot;,Other=&amp;quot;黑三</summary><published>2011-03-29T14:03:00Z</published><updated>2011-03-29T14:03:00Z</updated><author><name>子午</name><uri>http://www.cnblogs.com/zwl12549/</uri></author><link rel="alternate" href="http://www.cnblogs.com/zwl12549/archive/2011/03/29/1999223.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/zwl12549/archive/2011/03/29/1999223.html"/><content type="html">&lt;div id="cnblogs_post_body"&gt;&#xD;
&lt;p align="left"&gt;getJSON与aspx&lt;/p&gt;&#xD;
&lt;p align="left"&gt;准备工作&lt;/p&gt;&#xD;
&lt;p align="left"&gt;&amp;middot;Customer类&lt;/p&gt;&#xD;
&lt;p align="left"&gt;&lt;/p&gt;&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&#xD;
&lt;div&gt;public class Customer&lt;br /&gt;{&lt;br /&gt;public int Unid { get; set; }&lt;br /&gt;public string CustomerName { get; set; }&lt;br /&gt;public string Memo { get; set; }&lt;br /&gt;public string Other { get; set; }&lt;br /&gt;}&lt;/div&gt;&#xD;
&lt;/div&gt;&#xD;
&#xD;
&lt;p align="left"&gt;&lt;/p&gt;&#xD;
&lt;p align="left"&gt;（一）ashx&lt;/p&gt;&#xD;
&lt;p align="left"&gt;&lt;/p&gt;&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&#xD;
&lt;div&gt;Customer customer = new Customer &lt;br /&gt;{ Unid=1,CustomerName="宋江",Memo="天魁星",Other="黑三郎"};&lt;br /&gt;&lt;br /&gt;string strJson = Newtonsoft.Json.JsonConvert.SerializeObject(customer);&lt;br /&gt;&lt;br /&gt;context.Response.Write(strJson);&lt;/div&gt;&#xD;
&lt;/div&gt;&#xD;
&#xD;
&lt;p align="left"&gt;&lt;/p&gt;&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&#xD;
&lt;div&gt;function GetCustomer_Ashx() {&lt;br /&gt;$.getJSON(&lt;br /&gt;"webdata/Json_1.ashx",&lt;br /&gt;function(data) {&lt;br /&gt;var tt = "";&lt;br /&gt;$.each(data, function(k, v) {&lt;br /&gt;tt += k + "：" + v + "&amp;lt;br/&amp;gt;";&lt;br /&gt;})&lt;br /&gt;&lt;br /&gt;$("#divmessage").html(tt);&lt;br /&gt;});&lt;br /&gt;}&lt;/div&gt;&#xD;
&lt;/div&gt;&#xD;
&#xD;
&lt;p align="left"&gt;&amp;middot;通过getJSON向ashx请求数据。返回的数据为JSON对象。&lt;/p&gt;&#xD;
&lt;p align="left"&gt;（二）ashx文件，但返回的是实体集合&lt;/p&gt;&#xD;
&lt;p align="left"&gt;&lt;/p&gt;&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&#xD;
&lt;div&gt;Customer customer = new Customer &lt;br /&gt;{ Unid=1,CustomerName="宋江",Memo="天魁星",Other="黑三郎"};&lt;br /&gt;&lt;br /&gt;Customer customer2 = new Customer &lt;br /&gt;{ Unid = 2, CustomerName = "吴用", Memo = "天机星", Other = "智多星" }; &lt;br /&gt;&lt;br /&gt;List&amp;lt;Customer&amp;gt; _list = new List&amp;lt;Customer&amp;gt;();&lt;br /&gt;_list.Add(customer);&lt;br /&gt;_list.Add(customer2); &lt;br /&gt;&lt;br /&gt;string strJson = Newtonsoft.Json.JsonConvert.SerializeObject(_list);&lt;br /&gt;context.Response.Write(strJson);&lt;/div&gt;&#xD;
&lt;/div&gt;&#xD;
&#xD;
&lt;p align="left"&gt;&lt;/p&gt;&#xD;
&lt;p align="left"&gt;&lt;/p&gt;&#xD;
&lt;p align="left"&gt;&lt;/p&gt;&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&#xD;
&lt;div&gt;function GetCustomerList() {&lt;br /&gt;$.getJSON(&lt;br /&gt;"webdata/Json_1.ashx",&lt;br /&gt;function(data) {&lt;br /&gt;var tt = "";&lt;br /&gt;$.each(data, function(k, v) {&lt;br /&gt;$.each(v,function(kk, vv) {&lt;br /&gt;tt += kk + "：" + vv + "&amp;lt;br/&amp;gt;";&lt;br /&gt;});&lt;br /&gt;});&lt;br /&gt;$("#divmessage").html(tt);&lt;br /&gt;});&lt;br /&gt;}&lt;/div&gt;&#xD;
&lt;/div&gt;&#xD;
&#xD;
&lt;p align="left"&gt;具体可以参看：&lt;a target="_blank" href="http://www.cnblogs.com/jams742003/archive/2009/12/25/1632276.html"&gt;&lt;span color="#a91718" style="color: #a91718;"&gt;http://www.cnblogs.com/jams742003/archive/2009/12/25/1632276.html&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p align="left"&gt;（三）请求aspx文件&lt;/p&gt;&#xD;
&lt;p align="left"&gt;&amp;middot;cs文件&lt;/p&gt;&#xD;
&lt;p align="left"&gt;&lt;/p&gt;&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&#xD;
&lt;div&gt;protected void Page_Load(object sender, EventArgs e)&lt;br /&gt;{&lt;br /&gt;Customer customer = new Customer &lt;br /&gt;{ Unid = 1, CustomerName = "宋江", Memo = "天魁星", Other = "黑三郎" };&lt;br /&gt;&lt;br /&gt;string strJson = Newtonsoft.Json.JsonConvert.SerializeObject(customer);&lt;br /&gt;&lt;br /&gt;Response.Write(strJson);&lt;br /&gt;}&lt;/div&gt;&#xD;
&lt;/div&gt;&#xD;
&#xD;
&lt;p align="left"&gt;&lt;/p&gt;&#xD;
&lt;p align="left"&gt;&lt;/p&gt;&#xD;
&lt;p align="left"&gt;&amp;middot;Aspx文件&lt;/p&gt;&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&#xD;
&lt;div&gt;&amp;lt;%@ Page Language="C#" AutoEventWireup="true" CodeFile="Json_1.aspx.cs" &lt;br /&gt;Inherits="webdata_Json_1" %&amp;gt;&lt;/div&gt;&#xD;
&lt;/div&gt;&#xD;
&#xD;
&lt;p align="left"&gt;前台文件只保留Page声明，其它全部删除。&lt;/p&gt;&#xD;
&lt;p align="left"&gt;&lt;/p&gt;&#xD;
&lt;p align="left"&gt;&amp;middot;js文件&lt;/p&gt;&#xD;
&lt;p align="left"&gt;&lt;/p&gt;&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&#xD;
&lt;div&gt;function GetCustomer_Aspx() {&lt;br /&gt;$.getJSON(&lt;br /&gt;"webdata/Json_1.aspx",&lt;br /&gt;function(data) {&lt;br /&gt;var tt = "";&lt;br /&gt;$.each(data, function(k, v) {&lt;br /&gt;tt += k + "：" + v + "&amp;lt;br/&amp;gt;";&lt;br /&gt;})&lt;br /&gt;$("#divmessage").html(tt);&lt;br /&gt;});&lt;br /&gt;}&lt;/div&gt;&#xD;
&lt;/div&gt;&#xD;
&#xD;
&lt;p align="left"&gt;这个部分与请求ashx文件时相同。&lt;/p&gt;&#xD;
&lt;p align="left"&gt;请求实体集合时，与ashx时相同，这里不做重复。&lt;/p&gt;&#xD;
&lt;p align="left"&gt;（四）请求文本文件&lt;/p&gt;&#xD;
&lt;p align="left"&gt;文本文件提供json字符串，由$.getJSON得到json对象。&lt;/p&gt;&#xD;
&lt;p align="left"&gt;&amp;middot;文本文件&lt;/p&gt;&#xD;
&lt;p align="left"&gt;{Unid:1,CustomerName:"宋江",Memo:"天魁星",Other:"黑三郎"}&lt;/p&gt;&#xD;
&lt;p align="left"&gt;文本文件提供json串，对于json的组成格式，请参见其它文档。对于这一实体json，会被忽略空行与空格。 &lt;/p&gt;&#xD;
&lt;p align="left"&gt;&lt;/p&gt;&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&#xD;
&lt;div&gt;function GetCustomer_txt() {&lt;br /&gt;$.getJSON(&lt;br /&gt;"webdata/Json_1.txt",&lt;br /&gt;function(data) {&lt;br /&gt;var tt = "";&lt;br /&gt;$.each(data, function(k, v) {&lt;br /&gt;tt += k + "：" + v + "&amp;lt;br/&amp;gt;";&lt;br /&gt;})&lt;br /&gt;$("#divmessage").html(tt);&lt;br /&gt;});&lt;br /&gt;}&lt;/div&gt;&#xD;
&lt;/div&gt;&#xD;
&#xD;
&lt;p align="left"&gt;解析的方法与其它的相同。&lt;/p&gt;&#xD;
&lt;p align="left"&gt;&lt;/p&gt;&#xD;
&lt;p align="left"&gt;对于多行的如下：&lt;/p&gt;&#xD;
&lt;p align="left"&gt;文本：&lt;/p&gt;&#xD;
&lt;p align="left"&gt;[&lt;/p&gt;&#xD;
&lt;p align="left"&gt;{Unid:1,CustomerName:"宋江",Memo:"天魁星",Other:"黑三郎"},&lt;/p&gt;&#xD;
&lt;p align="left"&gt;{Unid:2,CustomerName:"吴用",Memo:"天机星",Other:"智多星"}&lt;/p&gt;&#xD;
&lt;p align="left"&gt;]&lt;/p&gt;&#xD;
&lt;p align="left"&gt;&lt;/p&gt;&#xD;
&lt;p align="left"&gt;解析：&lt;/p&gt;&#xD;
&lt;p align="left"&gt;&lt;/p&gt;&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&#xD;
&lt;div&gt;function GetCustomer_TxtList() {&lt;br /&gt;$.getJSON(&lt;br /&gt;"webdata/Json_1.txt",&lt;br /&gt;function(data) {&lt;br /&gt;var tt = "";&lt;br /&gt;$.each(data, function(k, v) {&lt;br /&gt;$.each(v, function(kk, vv) {&lt;br /&gt;tt += kk + "：" + vv + "&amp;lt;br/&amp;gt;";&lt;br /&gt;});&lt;br /&gt;});&lt;br /&gt;$("#divmessage").html(tt);&lt;br /&gt;});&lt;br /&gt;}&lt;/div&gt;&#xD;
&lt;/div&gt;&#xD;
&#xD;
&lt;p align="left"&gt;与其它的相同。&lt;/p&gt;&#xD;
&lt;p align="left"&gt;（五）带参数ajax请求&lt;/p&gt;&#xD;
&lt;p align="left"&gt;以ashx为例子，按客户id来请求客户。&lt;/p&gt;&#xD;
&lt;p align="left"&gt;&amp;middot;Ashx文件&lt;/p&gt;&#xD;
&lt;p align="left"&gt;&lt;/p&gt;&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&#xD;
&lt;div&gt;if(context.Request["iUnid"]==null)&lt;br /&gt;return;&lt;br /&gt;&lt;br /&gt;context.Response.ContentType = "text/plain"; &lt;br /&gt;&lt;br /&gt;Customer customer = new Customer &lt;br /&gt;{ Unid = 1, CustomerName = "宋江", Memo = "天魁星", Other = "黑三郎" };&lt;br /&gt;&lt;br /&gt;Customer customer2 = new Customer &lt;br /&gt;{ Unid = 2, CustomerName = "吴用", Memo = "天机星", Other = "智多星" }; &lt;br /&gt;&lt;br /&gt;List&amp;lt;Customer&amp;gt; _list = new List&amp;lt;Customer&amp;gt;();&lt;br /&gt;_list.Add(customer);&lt;br /&gt;_list.Add(customer2);&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;int iCustomerId =Convert.ToInt32(context.Request["iUnid"]);&lt;br /&gt;var cus = from q in _list&lt;br /&gt;where q.Unid == iCustomerId&lt;br /&gt;select q;&lt;br /&gt;&lt;br /&gt;string strJson = Newtonsoft.Json.JsonConvert.SerializeObject(cus);&lt;br /&gt;context.Response.Write(strJson);&lt;/div&gt;&#xD;
&lt;/div&gt;&#xD;
&#xD;
&lt;p align="left"&gt;&amp;middot;ajax请求 &lt;/p&gt;&#xD;
&lt;p align="left"&gt;&lt;/p&gt;&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&#xD;
&lt;div&gt;function GetCustomer_AshxWithPara() {&lt;br /&gt;$.getJSON(&lt;br /&gt;"webdata/Json_2.ashx",&lt;br /&gt;{ iUnid: 1 },&lt;br /&gt;function(data) {&lt;br /&gt;var tt = "";&lt;br /&gt;$.each(data, function(k, v) {&lt;br /&gt;$.each(v, function(kk, vv) {&lt;br /&gt;tt += kk + "：" + vv + "&amp;lt;br/&amp;gt;";&lt;br /&gt;});&lt;br /&gt;});&lt;br /&gt;&lt;br /&gt;$("#divmessage").html(tt);&lt;br /&gt;});&lt;br /&gt;}&lt;/div&gt;&#xD;
&lt;/div&gt;&#xD;
&#xD;
&lt;p align="left"&gt;其中参数也是以k/v对格式发出。请求返回的可以看到：在服务端以Customer列表集合返回。&lt;/p&gt;&#xD;
&lt;p align="left"&gt;&lt;/p&gt;&#xD;
&lt;p align="left"&gt;在jquery库中，getJSON其实是调用的：Query.get(url, data, callback, "json")&lt;/p&gt;&#xD;
&lt;p align="left"&gt;这点很重要。&lt;/p&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;img src="http://www.cnblogs.com/zwl12549/aggbug/1999223.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/zwl12549/archive/2011/03/29/1999223.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/zwl12549/archive/2011/03/25/1995167.html</id><title type="text">android新手学习笔记</title><summary type="text">用eclipse新建activity，其实就是一个java class，选项卡里面有很多资料，superclass这里需要修改android.app.Activity或者其他就成activity了.无法获取资源id，必须在onCreate(Bundle)后才能条用setContentView(int)来填充界面，这个方法的作用是填充ID所有指定的布局资源.findViewById必须在setContentView(int)之后。一个android应用程序可以包含多个activity，但只有一个activity用于启动，androidManifest.xml将这个Activity定义一个&amp;lt;</summary><published>2011-03-25T02:58:00Z</published><updated>2011-03-25T02:58:00Z</updated><author><name>子午</name><uri>http://www.cnblogs.com/zwl12549/</uri></author><link rel="alternate" href="http://www.cnblogs.com/zwl12549/archive/2011/03/25/1995167.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/zwl12549/archive/2011/03/25/1995167.html"/><content type="html">&lt;ol&gt;&#xD;
&lt;li&gt;用eclipse新建activity，其实就是一个java class，选项卡里面有很多资料，superclass这里需要修改android.app.Activity或者其他就成activity了.&lt;/li&gt;&#xD;
&lt;li&gt;无法获取资源id，必须在onCreate(Bundle)后才能条用setContentView(int)来填充界面，这个方法的作用是填充ID所有指定的布局资源.findViewById必须在setContentView(int)之后。&lt;/li&gt;&#xD;
&lt;li&gt;一个android应用程序可以包含多个activity，但只有一个activity用于启动，androidManifest.xml将这个Activity定义一个&amp;lt;category .. android.intent.category.LAUNCHER" /&amp;gt;，多个Activity可以相互调用，形成一个Activity栈&lt;/li&gt;&#xD;
&lt;li&gt;Service,Activity调用好像不能传值,BroadcastReceiver(广播接收器),可以实现对消息的过滤、判断和接收,可在程序中注册也可在程序清单中明确.&amp;lt;/activity&amp;gt;&amp;lt;receiver ../&amp;gt;&lt;/li&gt;&#xD;
&lt;/ol&gt;&lt;img src="http://www.cnblogs.com/zwl12549/aggbug/1995167.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/zwl12549/archive/2011/03/25/1995167.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/zwl12549/archive/2011/03/24/1993452.html</id><title type="text">神采</title><summary type="text">http://bbs.bget.cn/index.php这玩意确实不错~省了好多事</summary><published>2011-03-24T01:58:00Z</published><updated>2011-03-24T01:58:00Z</updated><author><name>子午</name><uri>http://www.cnblogs.com/zwl12549/</uri></author><link rel="alternate" href="http://www.cnblogs.com/zwl12549/archive/2011/03/24/1993452.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/zwl12549/archive/2011/03/24/1993452.html"/><content type="html">&lt;p&gt;&lt;a href="http://bbs.bget.cn/index.php"&gt;http://bbs.bget.cn/index.php&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;这玩意确实不错~省了好多事&lt;/p&gt;&lt;img src="http://www.cnblogs.com/zwl12549/aggbug/1993452.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/zwl12549/archive/2011/03/24/1993452.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/zwl12549/archive/2011/03/04/1971010.html</id><title type="text">android默认页面几秒后自动跳转另一页面</title><summary type="text">super.onCreate(paramBundle);setContentView(R.layout.splash_screen_view);final Intent localIntent=new Intent(this,Main.class);Timer timer=new Timer();TimerTask tast=new TimerTask(){@Overridepublic void run(){startActivity(localIntent);}};timer.schedule(tast,DELAY);</summary><published>2011-03-04T08:26:00Z</published><updated>2011-03-04T08:26:00Z</updated><author><name>子午</name><uri>http://www.cnblogs.com/zwl12549/</uri></author><link rel="alternate" href="http://www.cnblogs.com/zwl12549/archive/2011/03/04/1971010.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/zwl12549/archive/2011/03/04/1971010.html"/><content type="html">super.onCreate(paramBundle);&lt;br /&gt;&amp;nbsp;&amp;nbsp;setContentView(R.layout.splash_screen_view);&lt;br /&gt;&amp;nbsp;&amp;nbsp;final Intent localIntent=new Intent(this,Main.class);&lt;br /&gt;&amp;nbsp;&amp;nbsp;Timer timer=new Timer();&lt;br /&gt;&amp;nbsp;&amp;nbsp;TimerTask tast=new TimerTask()&lt;br /&gt;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;@Override&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;public void run(){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;startActivity(localIntent);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;};&lt;br /&gt;&amp;nbsp;&amp;nbsp;timer.schedule(tast,DELAY);&lt;img src="http://www.cnblogs.com/zwl12549/aggbug/1971010.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/zwl12549/archive/2011/03/04/1971010.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/zwl12549/archive/2011/03/04/1970763.html</id><title type="text">Android 支持多屏幕机制</title><summary type="text">1.Screen size 屏幕实际尺寸。Android讲屏幕实际尺寸分为3个通用的尺寸。 2.Aspect ratio 长宽比 3.Resolution 分辨率 4.Density 密度 5.Density-independent pixel 密度无关的像素介绍：Adnroid1.6或以上SDK，在AndroidManifest.xml中提供新的一个元素&amp;lt;supports-screens&amp;gt;用于支持多屏幕机制。&amp;lt;supports-screens android:largeScreens=&amp;quot;true&amp;quot; 是否支持大屏 android:normalScreens</summary><published>2011-03-04T03:58:00Z</published><updated>2011-03-04T03:58:00Z</updated><author><name>子午</name><uri>http://www.cnblogs.com/zwl12549/</uri></author><link rel="alternate" href="http://www.cnblogs.com/zwl12549/archive/2011/03/04/1970763.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/zwl12549/archive/2011/03/04/1970763.html"/><content type="html">&lt;p&gt;1.Screen size 屏幕实际尺寸。&lt;br /&gt;Android讲屏幕实际尺寸分为3个通用的尺寸。&lt;br /&gt;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp; 2.Aspect ratio 长宽比&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; 3.Resolution 分辨率&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; 4.Density 密度&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; 5.Density-independent pixel 密度无关的像素&lt;br /&gt;&lt;br /&gt;介绍：Adnroid1.6或以上SDK，在AndroidManifest.xml中提供新的一个元素&amp;lt;supports-screens&amp;gt;用于支持多屏幕机制。&lt;br /&gt;&lt;span style="white-space: pre;"&gt;&lt;/span&gt;&amp;lt;supports-screens &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="white-space: pre;"&gt; &lt;/span&gt;android:largeScreens="true"&amp;nbsp;&amp;nbsp; 是否支持大屏&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="white-space: pre;"&gt;&lt;/span&gt;android:normalScreens="true"&amp;nbsp; 是否支持中屏&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="white-space: pre;"&gt;&lt;/span&gt;android:smallScreens="true"&amp;nbsp;&amp;nbsp; 是否支持小屏&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="white-space: pre;"&gt;&lt;/span&gt;android:anyDensity="true"&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 是否支持多种不同密度&lt;br /&gt;&lt;span style="white-space: pre;"&gt;&lt;/span&gt;/&amp;gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Android提供3种方式处理屏幕自适应&lt;br /&gt;&lt;span style="white-space: pre;"&gt;&lt;/span&gt;一.预缩放的资源(基于尺寸和密度去寻找图片)&lt;br /&gt;&lt;span style="white-space: pre;"&gt;&lt;/span&gt;1.如果找到相应的尺寸和密度，则利用这些图片进行无缩放小时。&lt;br /&gt;&lt;span style="white-space: pre;"&gt;&lt;/span&gt;2.如果没法找到相应的尺寸，而找到密度，则认为该图片尺寸为 "medium"，利用缩放这个图片显示。&lt;br /&gt;&lt;span style="white-space: pre;"&gt;&lt;/span&gt;3.如果都无法匹配，则使用默认图片进行缩放显示。默认图片默认标配 "medium" (160)。&lt;br /&gt;&lt;br /&gt;&lt;span style="white-space: pre;"&gt;&lt;/span&gt;二.自动缩放的像素尺寸和坐标(密度兼容)&lt;br /&gt;&lt;span style="white-space: pre;"&gt;&lt;/span&gt;1.如果应用程序不支持不同密度android:anyDensity="false",系统自动缩放图片尺寸和这个图片的坐标。&lt;br /&gt;&amp;nbsp;&lt;span style="white-space: pre;"&gt; &lt;/span&gt;(代码中体现)&lt;br /&gt;&lt;span style="white-space: pre;"&gt;&lt;/span&gt;2.对于预缩放的资源，当android:anyDensity="false"，也不生效。&lt;br /&gt;&lt;span style="white-space: pre;"&gt;&lt;/span&gt;3.android:anyDensity="false"，只对密度兼容起作用，尺寸兼容没效果&lt;br /&gt;&lt;br /&gt;&lt;span style="white-space: pre;"&gt;&lt;/span&gt;三.兼容模式显示在大屏幕，尺寸(尺寸兼容)&lt;br /&gt;&lt;span style="white-space: pre;"&gt;&lt;/span&gt;1.对于你在&amp;lt;supports-screens&amp;gt;声明不支持的大屏幕，而这个屏幕尺寸是normal的话，系统使用尺寸为 &lt;span style="white-space: pre;"&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;("normal")和密度为("medium)显示。&lt;br /&gt;&lt;span style="white-space: pre;"&gt;&lt;/span&gt;2. 对于你在&amp;lt;supports-screens&amp;gt;声明不支持的大屏幕，而这个屏幕尺寸是larger的话，系统同样使用尺寸为 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ("normal")和密度为("medium)显示，不过会出现一层黑色的背景。不是居中显示。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;密度独立：&lt;br /&gt;&lt;span style="white-space: pre;"&gt;&lt;/span&gt;系统默认应用支持DIP单位的，三个使用DIP的地方：&lt;br /&gt;&lt;span style="white-space: pre;"&gt;&lt;/span&gt;1.加载资源时，使用DIP实现预缩放的资源。&lt;br /&gt;&lt;span style="white-space: pre;"&gt;&lt;/span&gt;2.在Layout使用DIP，系统自动完成缩放。&lt;br /&gt;&lt;span style="white-space: pre;"&gt;&lt;/span&gt;3.在应用程序中，自动缩放一些绝对像素。&lt;br /&gt;&amp;nbsp;&lt;span style="white-space: pre;"&gt; &lt;/span&gt;&amp;nbsp; (只有在android:anyDensity="false"生效)即屏幕自适应方式二&lt;br /&gt;&lt;span style="white-space: pre;"&gt;&lt;/span&gt;4.像素单位都使用DIP，文本单位使用SP&lt;br /&gt;&lt;br /&gt;最佳屏幕独立实践：&lt;br /&gt;&lt;span style="white-space: pre;"&gt;&lt;/span&gt;1.使用wrap_content, fill_parent 和使用dip作为像素单位in XML layout files。&lt;br /&gt;&lt;span style="white-space: pre;"&gt;&lt;/span&gt;2.避免使用AbsoluteLayout &lt;br /&gt;&lt;span style="white-space: pre;"&gt;&lt;/span&gt;3.在代码中，不要使用像素数字硬编码，而是要通过dip转换为px。&lt;br /&gt;&amp;nbsp; &lt;span style="white-space: pre;"&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;例子：&lt;br /&gt;&amp;nbsp;&lt;span style="white-space: pre;"&gt; &lt;/span&gt;&amp;nbsp;你使用手势分析器分析一个scroll手势，假如，你滚动的距离是16px。&lt;br /&gt;&lt;span style="white-space: pre;"&gt;&lt;/span&gt;1.在一个160dip的屏幕中，你实际移动距离 16px / 160dpi = 1/10th of an inch (or 2.5 mm)&lt;br /&gt;&lt;span style="white-space: pre;"&gt;&lt;/span&gt;2.在一个240dip的屏幕中，你实际移动距离 16px / 240dpi = 1/15th of an inch (or 1.7 mm)&lt;br /&gt;&amp;nbsp;&lt;span style="white-space: pre;"&gt; &lt;/span&gt;// The gesture threshold expressed in dip &lt;br /&gt;&amp;nbsp;&lt;span style="white-space: pre;"&gt; &lt;/span&gt;private static final float GESTURE_THRESHOLD_DIP = 16.0f; &lt;br /&gt;&amp;nbsp; &lt;span style="white-space: pre;"&gt;&lt;/span&gt;// Convert the dips to pixels &lt;br /&gt;&amp;nbsp; &lt;span style="white-space: pre;"&gt;&lt;/span&gt;final float scale = getContext().getResources().getDisplayMetrics().density; &lt;br /&gt;&amp;nbsp; &lt;span style="white-space: pre;"&gt;&lt;/span&gt;mGestureThreshold = (int) (GESTURE_THRESHOLD_DIP * scale); &lt;br /&gt;&lt;span style="white-space: pre;"&gt;&lt;/span&gt;4.使用密度和/或尺寸特定资源(通过文件夹)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;关于预缩放或者自动缩放图片或9格图&lt;br /&gt;&lt;span style="white-space: pre;"&gt;&lt;/span&gt;1.系统是一定对会资源包下的图片进行合理的缩放。&lt;br /&gt;&lt;span style="white-space: pre;"&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;例如：一张240x240高密度图片，显示在中密度的屏幕上，图片大小自动变为160x160。&lt;br /&gt;&lt;span style="white-space: pre;"&gt;&lt;/span&gt;2.你在API中不会得到被缩放后的图片尺寸，得到还是你原来图片的尺寸。&lt;br /&gt;&lt;span style="white-space: pre;"&gt;&lt;/span&gt;3.如果你不想系统自动帮你缩放图片，可以建立一个res/drawable-nodpi文件夹，存放你的图片。&lt;br /&gt;&lt;span style="white-space: pre;"&gt;&lt;/span&gt;4.也可以通过BitmapFactory.Options 完成系统自动缩放图片或9格图(在画图时)。&lt;br /&gt;&lt;span style="white-space: pre;"&gt;&lt;/span&gt;5.自动缩放图片比预缩放花费更多CPU，但是用更少内存(RAM or ROM ？) &lt;/p&gt;&lt;img src="http://www.cnblogs.com/zwl12549/aggbug/1970763.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/zwl12549/archive/2011/03/04/1970763.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry></feed>
