Android总笔记(未全)

Activity跳转转

Intent intent=newIntent();

Intent.setClass(Activity01.this,Activity01.class);

Activity01.this.startActivity(intent);

如需要传递值过去另外一个Activity

Intent.putExtra(“one”,”one”);

Intent.putExtra(“two”,2)

在另一个Activity中获取

Intentintent=getIntent();

Intent.getStringExtra(“one”);

Intent.getIntExtra(“two”);

//当点击了按钮后,会出发前一个ActivityonPause方法

onPause()

//当获得用户焦点的时候调用的方法,如点击按钮等

onResume()

//当这个Activity的界面可以看到的时候调用onstart方法

onStart()

//当启动完了另一个Activity后,就调用这个Activityonstop方法

onStop()

// 建立Alert

new AlertDialog.Builder(Activity01.this).setTitle("提示")

setItems用于设置弹出框的列表

setItems(R.array.item_dialog,

newDialogInterface.OnClickListener() {

@Override

publicvoid onClick(DialogInterface dialog,

int which) {

String strBody = getString(R.string.body);

获取string.xml的数组

String[] arr =getResources().getStringArray(R.array.item_dialog);

newAlertDialog.Builder(Activity01.this)

.setMessage(

strBody + arr[which])表示获取第几个

.setNegativeButton(

…………………………………………..

创建自定义AlertDialog

//创建Dialog对象构造函数中的参数一:Context,参数二:对话框的样式,定义在style.xml

final Dialog dialog = new Dialog(AlertDialogExample.this,R.style.dialog);

dialog.setContentView(R.layout.myalertdialog);//设置对话框的布局资源文件

final ImageButton cancelBut=(ImageButton)dialog.findViewById(R.id.cancel);//获取对话框上的按钮

cancelBut.setOnClickListener(new OnClickListener(){//"取消"按钮的单击事件

@Override

publicvoid onClick(View v) { // TODO Auto-generated method stub dialog.hide();//隐藏对话框

}

});

dialog.show();

style.xml文件

<?xml version="1.0" encoding="utf-8"?>

<resources>

<style name="dialog" parent="@android:style/Theme.Dialog">

<item name="android:windowFrame">@null</item><!--Dialog的边框,@null标识无-->

<item name="android:windowIsFloating">true</item><!--是否浮现在activity之上-->

<item name="android:windowIsTranslucent">false</item><!--半透明-->

<item name="android:windowNoTitle">true</item><!-- 无标题 -->

<item name="android:windowBackground">@null</item><!-- 无背景颜色 -->

<item name="android:backgroundDimEnabled">true</item><!--模糊-->

</style>

</resources>

文件操作

/* 产生Bitmap对象,并放入mImageView */

/* 检查文件是否存在 */

String fileName = "/data/data/irdc.ex04_22/ex04_22_2.png";

File f = new File(fileName);

if (f.exists())

Bitmap bm =BitmapFactory.decodeFile(fileName);

mImageView.setImageBitmap(bm);

文本输入设置

/*判断输入的类型是何种,并与系统链接*/

Linkify.addLinks(mTextView01,Linkify.WEB_URLS|Linkify. EMAIL_ADDRESSES|Linkify.PHONE_NUMBERS);

//也可以在main.xml里面进行设置

//android:autoLink="web|phone|E-mial" 也可以设置为all,表示全部

Rotate:旋转效果

// 创建一个AnimationSet对象

AnimationSet as = new AnimationSet(true);

RotateAnimation ra= new RotateAnimation(0, 360,

Animation.RELATIVE_TO_PARENT, 1f,

Animation.RELATIVE_TO_PARENT, 0f);

ra.setDuration(1000);

as.addAnimation(ra);

image.startAnimation(as);

Translate:移动效果

TranslateAnimationra = new TranslateAnimation(

Animation.RELATIVE_TO_SELF, 0f,

Animation.RELATIVE_TO_SELF, 0.5f,

Animation.RELATIVE_TO_SELF, 0f,

Animation.RELATIVE_TO_SELF, 1.0f);

ra.setDuration(2000);

as.addAnimation(ra);

image.startAnimation(as);

Scale:缩放效果

ScaleAnimation ra =new ScaleAnimation(1, 0.1f, 1, 0.1f,

Animation.RELATIVE_TO_SELF, 0.5f,

Animation.RELATIVE_TO_SELF, 0.5f);

ra.setDuration(2000);

as.addAnimation(ra);

image.startAnimation(as);

// 创建一个AlphaAnimation对象

AlphaAnimation aa =new AlphaAnimation(1, 0);

// 这个动画执行的时间有多长,单位为毫秒

aa.setDuration(1000);

// 将对象添加到animationSet对象中

as.addAnimation(aa);

// 使用imageViewstartAnimation方法执行动画

image.startAnimation(as);

publicstaticvoidmain(String[]args){

Thread.currentThread().interrupt();

//下面的判断会打印出来这样的语句Interruptfalse

//这样的结果是不是很让人费解呢???

//分析其原因为:

//因为在上面的一句代码可以中断线程,所以if判断线程是否中断就会得到的事true

但是Thread.interrupted()这个方法执行完后就会清除线程的中断状态, 所以最后再次的打印Thread.interrupted()方法就会得到false结果。 if(Thread.interrupted())

System.out.println("Interrupted:"+Thread.interrupted());

else

{

System.out.println("NotInterrupted"+Thread.interrupted());

}

//如果用下面的这个方法来进行if判断就会出现那种情况了,

//Thread.currentThread().isInterrupted();这个方法得到的结果:Interrupttrue

//因为它判断完后就不会清除线程的中断状态,只是返回一个线程状态的结果

}

/**

* 直接打电话的方法

*/

publicvoid call() {

String data = "tel:" + editText.getText();// 电话号码参数字符串

Uri uri = Uri.parse(data);// 将字符串转化为Uri实例

Intentintent = new Intent();// 实例化Intent

intent.setAction(Intent.ACTION_CALL);// 设置IntentAction属性

intent.setData(uri);// 设置IntentData属性

startActivity(intent);// 启动Activity

}

/**

* 启动一个拨号器的方法

*/

publicvoid dial() {

String data = "tel:" + editText.getText();// 电话号码参数字符串

Uri uri = Uri.parse(data);// 将字符串转化为Uri实例

Intent intent = new Intent();// 实例化Intent

intent.setAction(Intent.ACTION_DIAL);// 设置IntentAction属性

intent.setData(uri);// 设置IntentData属性

startActivity(intent);// 启动Activity

}

this.setTitle("Window Icon"); //设置标题栏上的文字

Window window=this.getWindow(); //获取当前ActivityWindow

this.requestWindowFeature(Window.FEATURE_LEFT_ICON); //标题栏左侧显示图标

setContentView(R.layout.main);//设置当前窗体的布局管理文件

this.setFeatureDrawableResource(Window.FEATURE_LEFT_ICON, R.drawable.webicon);//设置左侧的图标

<!-- 文字居中 -->

<TextView android:id="@+id/testGravity" android:layout_width="fill_parent"

android:layout_height="wrap_content"android:text="居中文字"

android:gravity="center"android:background="#ff00ff00"

android:textColor="#ff000000"android:textSize="18sp" />

<!-- 文字跑马灯效果 -->

<TextView android:id="@+id/testEllipsize"

android:layout_width="100px"android:layout_height="wrap_content"

android:text="跑马灯文字效果" android:ellipsize="marquee"

android:marqueeRepeatLimit="marquee_forever"android:singleLine="true"

android:focusable="true"android:focusableInTouchMode="true"

android:textColor="#ff000000"android:textSize="20sp" />

<!-- 设置文字阴影效果 -->

<TextView android:id="@+id/testShadow" android:layout_width="fill_parent"

android:layout_height="wrap_content"android:text="文字阴影效果"

android:textColor="#ff000000"android:shadowColor="#ffff0000"

android:shadowRadius="3.0"/>

<!-- 设置网址超链接效果 -->

<TextView android:id="@+id/testAutoLink1"

android:layout_width="fill_parent"android:layout_height="wrap_content"

android:text="网址超链接:http://www.baidu.com" android:textColor="#ff000000"

android:autoLink="all"android:textColorLink="#ff0000ff" />

<!-- 设置文字超链接效果 -->

<TextView android:id="@+id/testAutoLink2"

android:layout_width="fill_parent"android:layout_height="wrap_content"

android:text="@string/txtlink"android:textColor="#ff000000" />

<!-- 设置电话超链接效果 -->

<TextView android:id="@+id/testAutoLink2"

android:layout_width="fill_parent"android:layout_height="wrap_content"

android:text="@string/tellink"android:textColor="#ff000000" />

<!-- 设置字形 -->

<TextView android:id="@+id/testTextStyle"

android:layout_width="fill_parent"android:layout_height="wrap_content"

android:text="斜体" android:textColor="#ff000000"android:textStyle="italic" />

<!-- 设置文字缩放 -->

<TextView android:id="@+id/testTextScaleX"

android:layout_width="fill_parent"android:layout_height="wrap_content"

android:text="hello0.5f" android:textColor="#ff000000"

android:textScaleX="0.5"/>

<TextView android:layout_width="fill_parent"

android:layout_height="wrap_content"android:text="hello 1.0f"

android:textColor="#ff000000"android:textScaleX="1.0" />

<TextView android:layout_width="fill_parent"

android:layout_height="wrap_content"android:text="hello 1.5f"

android:textColor="#ff000000"android:textScaleX="1.5" />

<TextView android:layout_width="fill_parent"

android:layout_height="wrap_content"android:text="hello 2.0f"

android:textColor="#ff000000"android:textScaleX="2.0" />

<TextView android:layout_width="fill_parent"

android:layout_height="wrap_content"android:text="hello 2.5f"

android:textColor="#ff000000"android:textScaleX="2.5" />

<!-- 设置行间距 -->

<TextView android:id="@+id/testLineSpacingExtra"

android:layout_width="fill_parent"android:layout_height="wrap_content"

android:text="@string/lineheight1"android:textColor="#ff000000"

android:lineSpacingExtra="4px"/>

<!-- 设置行间距的倍数 -->

<TextView android:id="@+id/testLineSpacingMultiplier"

android:layout_width="fill_parent"android:layout_height="wrap_content"

android:text="@string/lineheight2"android:textColor="#ff000000"

android:lineSpacingMultiplier="1.5"/>

//调用style.xml文件

<TextView style="@style/DefineTextStyle" android:layout_width="fill_parent"

android:layout_height="wrap_content"android:text="@string/hello"

/>

Style.xml文件

<resources>

<style name="DefineTextStyle">

<item name="android:textSize">28px</item>

<item name="android:textColor">@color/darkgreen</item>

<item name="android:gravity">center</item>

<item name="android:textStyle">bold|italic</item>

<item name="android:background">@color/pink</item>

</style>

</resources>

<!--

ScrollView标签为滚动view标签,当内容超出窗口可视范围会自动出现滚动条

android:scrollbarThumbVertical指定滚动条的背景图片

-->

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"

android:orientation="vertical"android:layout_width="fill_parent"

android:layout_height="fill_parent"android:background="#ffF4F4F4"

android:fadingEdge="vertical"android:fadingEdgeLength="100px"

android:scrollbarThumbVertical="@drawable/scrollbackground">

//获取String.xml文件里面的drawaablewhite

Resourcesres=getBaseContext().getResources();

Drawable dr=res.getDrawable(R.drawable.white);

//设为背景色

tv.setBackgroundDrawable(dr);

//要获取手机分辨率要使用util.DisplayMetrics

DisplayMetrics dm=new DisplayMetrics();

getWindowManager().getDefaultDisplay().getMetrics(dm);

String strOpt="这是手机屏幕的分辨率:"+dm.widthPixels+"*"+dm.heightPixels;

TextViewfenbian=(TextView) findViewById(R.id.fenbianlv);

fenbian.setText(strOpt);

在第一个Activity:

传递数值(对象)给另一个Activity

/* 新建一个Intent对象 */

Intent intent = new Intent();

/* 指定intent要启动的类 */

intent.setClass(Activity01.this, Activity02.class);

/* 创建Bundler对象,用于传递数据给下一个Activity */

Bundle b = new Bundle();

b.putString("key", "");

/* Bundler对象assignintent */

intent.putExtras(b);

//调用返回值方法

startActivityForResult(intent,0);

在第二个Activity:

//获取前面Activity传过来的数据

//获取Intent中的Bundle对象

Intent intent=this.getIntent();

Bundle b=intent.getExtras();

//获取Bundler的对象

Stringvalue=b.getString("key");

TextViewt=(TextView) findViewById(R.id.go);

t.setText("获取前一个Acitivity的值:"+value);

在第二个Activity:

//用于将值传回给第一个Acitivity的案例代码

Activity02.this.setResult(RESULT_OK, intent);

//关闭当前Activity02

Activity02.this.finish();

在第一个Activity:

// 用于获取Activity返回过来的值

@Override

protectedvoid onActivityResult(intrequestCode, int resultCode, Intent data) {

switch (resultCode) {

caseRESULT_OK:

/* 取得来自Activity2的数据,显示到TextView */

Bundle b = data.getExtras();

String value = b.getString("key");

Button t = (Button)findViewById(R.id.button1);

t.setText(value);

break;

default:

break;

}

}

//得到ContentResolver对象

ContentResolver cr =getContentResolver();

//取得电话本中开始一项的光标

Cursor cursor =cr.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);

//向下移动一下光标

while(cursor.moveToNext())

{

//取得联系人名字

int nameFieldColumnIndex= cursor.getColumnIndex(PhoneLookup.DISPLAY_NAME);

Stringcontact = cursor.getString(nameFieldColumnIndex);

//取得电话号码

int numberFieldColumnIndex =cursor.getColumnIndex(PhoneLookup.NUMBER);

Stringnumber = cursor.getString(numberFieldColumnIndex);

string+= (contact+":"+number+"\n");

}

cursor.close();

//设置TextView显示的内容

tv.setText(string);

//显示到屏幕

setContentView(tv);

/* 按键按下所触发的事件 */

publicboolean onKeyDown(int keyCode,KeyEvent event)

{

switch (keyCode)

{

case KeyEvent.KEYCODE_DPAD_CENTER:

DisplayToast("按下:中键");

break;

case KeyEvent.KEYCODE_DPAD_UP:

DisplayToast("按下:上方向键");

break;

case KeyEvent.KEYCODE_DPAD_DOWN:

DisplayToast("按下:下方向键");

break;

case KeyEvent.KEYCODE_DPAD_LEFT:

DisplayToast("按下:左方向键");

break;

case KeyEvent.KEYCODE_DPAD_RIGHT:

DisplayToast("按下:右方向键");

break;

}

returnsuper.onKeyDown(keyCode, event);

}

/* 按键弹起所触发的事件 */

publicboolean onKeyUp(int keyCode,KeyEvent event)

{

switch (keyCode)

{

case KeyEvent.KEYCODE_DPAD_CENTER:

DisplayToast("弹起:中键");

break;

case KeyEvent.KEYCODE_DPAD_UP:

DisplayToast("弹起:上方向键");

break;

case KeyEvent.KEYCODE_DPAD_DOWN:

DisplayToast("弹起:下方向键");

break;

case KeyEvent.KEYCODE_DPAD_LEFT:

DisplayToast("弹起:左方向键");

break;

case KeyEvent.KEYCODE_DPAD_RIGHT:

DisplayToast("弹起:右方向键");

break;

}

returnsuper.onKeyUp(keyCode, event);

}

/* 触笔事件 */

publicboolean onTouchEvent(MotionEvent event)

{

int iAction = event.getAction();

if (iAction ==MotionEvent.ACTION_CANCEL ||

iAction == MotionEvent.ACTION_DOWN ||

iAction == MotionEvent.ACTION_MOVE)

{

returnfalse;

}

//得到触笔点击的位置

int x = (int) event.getX();

int y = (int) event.getY();

DisplayToast("触笔点击坐标:("+Integer.toString(x)+","+Integer.toString(y)+")");

returnsuper.onTouchEvent(event);

}

publicboolean onKeyDown(int keyCode,KeyEvent event)

{

//这里构建KeyEvent对象,其功能为返回键的功能

//因此我们按任意键都会执行返回键功能

KeyEvent key = newKeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_BACK);

//这里传入的参数就是我们自己构建的KeyEvent对象key

returnsuper.onKeyDown(key.getKeyCode(), key);

}

例子:

/* 创建LinearLayout布局对象 */

m_LinearLayout = newLinearLayout(this);

/* 设置布局LinearLayout的属性 */

m_LinearLayout.setOrientation(LinearLayout.VERTICAL);

m_LinearLayout.setBackgroundColor(android.graphics.Color.BLACK);

/* 创建ListView对象 */

m_ListView = new ListView(this);

LinearLayout.LayoutParams param = new LinearLayout.LayoutParams(

LinearLayout.LayoutParams.FILL_PARENT,

LinearLayout.LayoutParams.WRAP_CONTENT);

m_ListView.setBackgroundColor(Color.BLACK);

/* 添加m_ListViewm_LinearLayout布局 */

m_LinearLayout.addView(m_ListView, param);

/* 设置显示m_LinearLayout布局 */

setContentView(m_LinearLayout);

// 获取数据库PhonesCursor

Cursor cur = getContentResolver().query(

ContactsContract.Contacts.CONTENT_URI, null, null, null, null);

startManagingCursor(cur);

//ListAdapterListView和后台数据的桥梁

ListAdapter adapter = new SimpleCursorAdapter(this,

// 定义List中每一行的显示模板

// 表示每一行包含两个数据项

android.R.layout.simple_list_item_2,

// 数据库的Cursor对象

cur,

// 从数据库的NAMENUMBER两列中取数据

new String[] {PhoneLookup.DISPLAY_NAME, PhoneLookup.NUMBER },

// NAMENUMBER对应的Views

newint[] { android.R.id.text1,android.R.id.text2 });

/* adapter添加到m_ListView */

m_ListView.setAdapter(adapter);

/* m_ListView视图添加setOnItemSelectedListener监听 */

m_ListView

.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {

@Override

publicvoid onItemSelected(AdapterView<?> arg0, View arg1,

int arg2, long arg3) {

DisplayToast("滚动到第"

+Long.toString(arg0.getSelectedItemId()) + "");

}

@Override

publicvoid onNothingSelected(AdapterView<?> arg0) {

// 没有选中

}

});

/* m_ListView视图添加setOnItemClickListener监听 */

m_ListView

.setOnItemClickListener(new AdapterView.OnItemClickListener() {

@Override

publicvoid onItemClick(AdapterView<?> arg0, View arg1,

int arg2, long arg3) {

// 于对选中的项进行处理

DisplayToast("选中了第" + Integer.toString(arg2 + 1) + "");

}

});

}

Toast toast =Toast.makeText(this, str, Toast.LENGTH_LONG);

//设置toast显示的位置

toast.setGravity(Gravity.TOP, 0, 220);

//显示该Toast

toast.show();

例子

privatestaticfinalString[] m_Countries = { "O", "A", "B", "AB", "其他" };

//将可选内容与ArrayAdapter连接

adapter = newArrayAdapter<String>(this, android.R.layout.simple_spinner_item, m_Countries);

//设置下拉列表的风格

adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

//adapter添加到m_Spinner

m_Spinner.setAdapter(adapter);

//添加Spinner事件监听

m_Spinner.setOnItemSelectedListener(new Spinner.OnItemSelectedListener() {

@Override

publicvoid onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3)

{

m_TextView.setText("你的血型是:" + m_Countries[arg2]);

//设置显示当前选择的项

arg0.setVisibility(View.VISIBLE);

}

@Override

publicvoid onNothingSelected(AdapterView<?> arg0)

{

// TODO Auto-generated method stub

}

});

例子

privatestaticfinalString[] autoString= new String[] { "a2", "abf", "abe", "abcde", "abc2", "abcd3", "abcde2", "abc2", "abcd2", "abcde2" };

//关联关键字

ArrayAdapter<String> adapter = newArrayAdapter<String>(this,

android.R.layout.simple_dropdown_item_1line, autoString);

AutoCompleteTextView m_AutoCompleteTextView = (AutoCompleteTextView)findViewById(R.id.AutoCompleteTextView01);

//adapter添加到AutoCompleteTextView

m_AutoCompleteTextView.setAdapter(adapter);

///////////////////

MultiAutoCompleteTextView mm_AutoCompleteTextView =(MultiAutoCompleteTextView) findViewById(R.id.MultiAutoCompleteTextView01);

//adapter添加到AutoCompleteTextView

mm_AutoCompleteTextView.setAdapter(adapter);

mm_AutoCompleteTextView.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());

例子

//获得Gallery对象

Gallery g = (Gallery) findViewById(R.id.Gallery01);

//添加ImageAdapterGallery对象

g.setAdapter(new ImageAdapter(this));

//设置Gallery的背景

g.setBackgroundResource(R.drawable.bg0);

//设置Gallery的事件监听

g.setOnItemClickListener(new OnItemClickListener() {

publicvoid onItemClick(AdapterView<?> parent, View v, int position, long id)

{

Toast.makeText(Activity01.this,"你选择了"+(position+1)+" 号图片",

Toast.LENGTH_SHORT).show();

}

});

ImageAdapter

// 定义Context

private Context mContext;

// 定义整型数组即图片源

private Integer[] mImageIds =

{

R.drawable.img1,

R.drawable.img2,

R.drawable.img3,

R.drawable.img4,

R.drawable.img5,

R.drawable.img6,

R.drawable.img7,

R.drawable.img8,

};

// 声明 ImageAdapter

public ImageAdapter(Context c)

{

mContext = c;

}

// 获取图片的个数

publicint getCount()

{

returnmImageIds.length;

}

// 获取图片在库中的位置

public Object getItem(int position)

{

return position;

}

// 获取图片ID

publiclong getItemId(int position)

{

return position;

}

public View getView(int position,View convertView, ViewGroup parent)

{

ImageView imageview = new ImageView(mContext);

// ImageView设置资源

imageview.setImageResource(mImageIds[position]);

// 设置布局图片120¡Á120显示

imageview.setLayoutParams(new Gallery.LayoutParams(120, 120));

// 设置显示比例类型

imageview.setScaleType(ImageView.ScaleType.FIT_CENTER);

return imageview;

}

例子:

//声明通知(消息)管理器

NotificationManager m_NotificationManager;

Intent m_Intent;

PendingIntent m_PendingIntent;

//声明Notification对象

Notification m_Notification;

//初始化NotificationManager对象

m_NotificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);

//点击通知时转移内容

m_Intent = newIntent(Activity01.this, Activity02.class);

//主要是设置点击通知时显示内容的类

m_PendingIntent = PendingIntent.getActivity(Activity01.this, 0, m_Intent, 0);

//构造Notification对象

m_Notification = newNotification();

m_Button1.setOnClickListener(new Button.OnClickListener() {

publicvoid onClick(View v)

{

//设置通知在状态栏显示的图标

m_Notification.icon = R.drawable.img1;

//当我们点击通知时显示的内容

m_Notification.tickerText = "Button1通知内容...........";

//通知时发出默认的声音

m_Notification.defaults = Notification.DEFAULT_SOUND;

//设置通知显示的参数

m_Notification.setLatestEventInfo(Activity01.this, "Button1", "Button1通知", m_PendingIntent);

//可以理解为执行这个通知

m_NotificationManager.notify(0, m_Notification);

}

});

m_Button2.setOnClickListener(newButton.OnClickListener() {

publicvoid onClick(View v)

{

m_Notification.icon = R.drawable.img2;

m_Notification.tickerText = "Button2通知内容...........";

//通知时震动

m_Notification.defaults = Notification.DEFAULT_VIBRATE;

m_Notification.setLatestEventInfo(Activity01.this, "Button2", "Button2通知", m_PendingIntent);

m_NotificationManager.notify(0, m_Notification);

}

});

m_Button3.setOnClickListener(new Button.OnClickListener() {

publicvoid onClick(View v)

{

m_Notification.icon = R.drawable.img3;

m_Notification.tickerText = "Button3通知内容...........";

//通知时屏幕发亮

m_Notification.defaults = Notification.DEFAULT_LIGHTS;

m_Notification.setLatestEventInfo(Activity01.this, "Button3", "Button3通知", m_PendingIntent);

m_NotificationManager.notify(0, m_Notification);

}

});

m_Button4.setOnClickListener(new Button.OnClickListener() {

publicvoid onClick(View v)

{

m_Notification.icon = R.drawable.img4;

m_Notification.tickerText = "Button4通知内容..........";

//通知时既震动又屏幕发亮还有默认的声音

m_Notification.defaults = Notification.DEFAULT_ALL;

m_Notification.setLatestEventInfo(Activity01.this, "Button4", "Button4通知", m_PendingIntent);

m_NotificationManager.notify(0, m_Notification);

}

});

圆形

//创建ProgressDialog对象

m_pDialog = new ProgressDialog(Activity01.this);

// 设置进度条风格,风格为圆形,旋转的

m_pDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);

// 设置ProgressDialog 标题

m_pDialog.setTitle("提示");

// 设置ProgressDialog 提示信息

m_pDialog.setMessage("这是一个圆形进度条对话框");

// 设置ProgressDialog 标题图标

m_pDialog.setIcon(R.drawable.img1);

// 设置ProgressDialog 的进度条是否不明确

m_pDialog.setIndeterminate(false);

// 设置ProgressDialog 是否可以按退回按键取消

m_pDialog.setCancelable(true);

// 设置ProgressDialog 的一个Button

m_pDialog.setButton("确定", new DialogInterface.OnClickListener() {

publicvoid onClick(DialogInterface dialog, int i)

{

//点击确定按钮取消对话框

dialog.cancel();

}

});

// ProgressDialog显示

m_pDialog.show();

长弹出框:

m_count = 0;

// 创建ProgressDialog对象

m_pDialog = new ProgressDialog(Activity01.this);

// 设置进度条风格,风格为长形

m_pDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);

// 设置ProgressDialog 标题

m_pDialog.setTitle("提示");

// 设置ProgressDialog 提示信息

m_pDialog.setMessage("这是一个长形对话框进度条");

// 设置ProgressDialog 标题图标

m_pDialog.setIcon(R.drawable.img2);

// 设置ProgressDialog 进度条进度

m_pDialog.setProgress(100);

// 设置ProgressDialog 的进度条是否不明确

m_pDialog.setIndeterminate(false);

// 设置ProgressDialog 是否可以按退回按键取消

m_pDialog.setCancelable(true);

// ProgressDialog显示

m_pDialog.show();

new Thread()

{

publicvoid run()

{

try

{

while (m_count <= 100)

{

// 由线程来控制进度。

m_pDialog.setProgress(m_count++);

Thread.sleep(100);

}

m_pDialog.cancel();

}

catch(InterruptedException e)

{

m_pDialog.cancel();

}

}

}.start();

例子:

//取得TabHost对象

mTabHost = getTabHost();

/* TabHost添加标签 */

//新建一个newTabSpec(newTabSpec)

//设置其标签和图标(setIndicator)

//设置内容(setContent)

mTabHost.addTab(mTabHost.newTabSpec("tab_test1")

.setIndicator("TAB 1",getResources().getDrawable(R.drawable.img1))

.setContent(R.id.textview1));

mTabHost.addTab(mTabHost.newTabSpec("tab_test2")

.setIndicator("TAB 2",getResources().getDrawable(R.drawable.img2))

.setContent(R.id.textview2));

mTabHost.addTab(mTabHost.newTabSpec("tab_test3")

.setIndicator("TAB 3",getResources().getDrawable(R.drawable.img3))

.setContent(R.id.textview3));

//设置TabHost的背景颜色

mTabHost.setBackgroundColor(Color.argb(150, 22, 70, 150));

//设置TabHost的背景图片资源

//mTabHost.setBackgroundResource(R.drawable.bg0);

//设置当前显示哪一个标签

mTabHost.setCurrentTab(0);

//标签切换事件处理,setOnTabChangedListener

mTabHost.setOnTabChangedListener(newOnTabChangeListener()

{

// TODO Auto-generated method stub

@Override

publicvoid onTabChanged(String tabId)

{

Dialogdialog = new AlertDialog.Builder(Activity01.this)

.setTitle("提示")

.setMessage("当前选中:"+tabId+"标签")

.setPositiveButton("确定",

new DialogInterface.OnClickListener()

{

publicvoid onClick(DialogInterface dialog, int whichButton)

{

dialog.cancel();

}

}).create();//创建按钮

dialog.show();

}

});

例子:

/* 取得屏幕分辨率大小 */

DisplayMetrics dm=new DisplayMetrics();

getWindowManager().getDefaultDisplay().getMetrics(dm);

displayWidth=dm.widthPixels;

/* 屏幕高度须扣除下方Button高度 */

displayHeight=dm.heightPixels-80;

/* 初始化相关变量 */

bmp=BitmapFactory.decodeResource(getResources(),R.drawable.ex04_23);

/* 图片缩小的method */

privatevoid small()

{

int bmpWidth=bmp.getWidth();

int bmpHeight=bmp.getHeight();

/* 设定图片缩小的比例 */

doublescale=0.8;

/* 计算出这次要缩小的比例 */

scaleWidth=(float) (scaleWidth*scale);

scaleHeight=(float) (scaleHeight*scale);

/* 生成reSize后的Bitmap对象 */

Matrix matrix = newMatrix();

matrix.postScale(scaleWidth, scaleHeight);

Bitmap resizeBmp = Bitmap.createBitmap(bmp,0,0,bmpWidth,bmpHeight,matrix,true);

if(id==0)

{

/* 如果是第一次按,就移除原来设定的ImageView */

layout1.removeView(mImageView);

}

else

{

/* 如果不是第一次按,就移除上次放大缩小所生成的ImageView*/

layout1.removeView((ImageView)findViewById(id));

}

/* 产生新的ImageView,放入reSizeBitmap对象,再放入Layout */

id++;

ImageView imageView = new ImageView(EX04_23.this);

imageView.setId(id);

imageView.setImageBitmap(resizeBmp);

layout1.addView(imageView);

setContentView(layout1);

/* 因为图片放到最大时放大按钮会disable,所以在缩小时把他重设为enable */

mButton02.setEnabled(true);

}

/* 图片放大的method */

privatevoid big()

{

int bmpWidth=bmp.getWidth();

int bmpHeight=bmp.getHeight();

/* 设定图片放大的比例 */

doublescale=1.25;

/* 计算这次要放大的比例 */

scaleWidth=(float)(scaleWidth*scale);

scaleHeight=(float)(scaleHeight*scale);

/* 产生reSize后的Bitmap对象 */

Matrix matrix = newMatrix();

matrix.postScale(scaleWidth, scaleHeight);

Bitmap resizeBmp = Bitmap.createBitmap(bmp,0,0,bmpWidth,bmpHeight,matrix,true);

if(id==0)

{

/* 如果是第一次按,就移除原来设定的ImageView */

layout1.removeView(mImageView);

}

else

{

/* 如果不是第一次按,就移除上次放大缩小所生成的ImageView*/

layout1.removeView((ImageView)findViewById(id));

}

/* 产生新的ImageView,放入reSizeBitmap对象,再放入Layout */

id++;

ImageView imageView = new ImageView(EX04_23.this);

imageView.setId(id);

imageView.setImageBitmap(resizeBmp);

layout1.addView(imageView);

setContentView(layout1);

/* 如果再放大会超过屏幕大小,就把Button disable */

if(scaleWidth*scale*bmpWidth>displayWidth||scaleHeight*scale*bmpHeight>displayHeight)

{

mButton02.setEnabled(false);

}

}

例子:

publicboolean onKeyDown(int keyCode,KeyEvent event)

{

if (keyCode ==KeyEvent.KEYCODE_BACK)

{

//退出应用程序时保存数据

/* 发送邮件的地址 */

Uri uri = Uri.parse("mailto:[email protected]");

/* 创建Intent */

Intent it = new Intent(Intent.ACTION_SENDTO, uri);

/* 设置邮件的主题 */

it .putExtra(android.content.Intent.EXTRA_SUBJECT, "数据备份");

/* 设置邮件的内容 */

it .putExtra(android.content.Intent.EXTRA_TEXT, "本次计数:"+miCount);

/* 开启 */

startActivity(it);

this.finish();

returntrue;

}

returnsuper.onKeyDown(keyCode, event);

}

例子:

TextView tv = new TextView(this);

String myString = null;

try

{

/* 定义我们要访问的地址url */

URL uri = new URL("http://192.168.1.110:8080/android.txt");

/* 打开这个url连接 */

URLConnection ucon =uri.openConnection();

/* 从上面的链接中取得InputStream */

InputStream is =ucon.getInputStream();

BufferedInputStream bis = new BufferedInputStream(is);

ByteArrayBuffer baf = new ByteArrayBuffer(100);

int current =0;

/* 一直读到文件结束 */

while ((current =bis.read()) != -1)

{

baf.append((byte) current);

}

myString = new String(baf.toByteArray());

}

catch (Exceptione)

{

myString = e.getMessage();

}

/* 将信息设置到TextView */

tv.setText(myString);

/* TextView显示到屏幕上 */

this.setContentView(tv);

例子:

public class Activity01 extends Activity

{

private static int miCount = 0;

/* 数据库对象 */

private SQLiteDatabase mSQLiteDatabase = null;

/* 数据库名 */

private final static String DATABASE_NAME ="Examples_06_05.db";

/* 表名 */

private final static String TABLE_NAME ="table1";

/* 表中的字段 */

private final static String TABLE_ID ="_id";

private final static String TABLE_NUM ="num";

private final static String TABLE_DATA ="data";

/* 创建表的sql语句 */

private final static String CREATE_TABLE ="CREATE TABLE " + TABLE_NAME + " (" + TABLE_ID + "INTEGER PRIMARY KEY," + TABLE_NUM + " INTERGER,"+ TABLE_DATA +" TEXT)";

/* 线性布局 */

LinearLayout m_LinearLayout = null;

/* 列表视图-显示数据库中的数据 */

ListView m_ListView =null;

/** Called when the activity isfirst created. */

@Override

public void onCreate(BundlesavedInstanceState)

{

super.onCreate(savedInstanceState);

/* 创建LinearLayout布局对象 */

m_LinearLayout = new LinearLayout(this);

/* 设置布局LinearLayout的属性 */

m_LinearLayout.setOrientation(LinearLayout.VERTICAL);

m_LinearLayout.setBackgroundColor(android.graphics.Color.BLACK);

/* 创建ListView对象 */

m_ListView = newListView(this);

LinearLayout.LayoutParams param= new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT,LinearLayout.LayoutParams.WRAP_CONTENT);

m_ListView.setBackgroundColor(Color.BLACK);

/* 添加m_ListViewm_LinearLayout布局 */

m_LinearLayout.addView(m_ListView,param);

/* 设置显示m_LinearLayout布局 */

setContentView(m_LinearLayout);

// 打开已经存在的数据库

mSQLiteDatabase =this.openOrCreateDatabase(DATABASE_NAME, MODE_PRIVATE, null);

// 获取数据库PhonesCursor

try

{

/* 在数据库mSQLiteDatabase中创建一个表 */

mSQLiteDatabase.execSQL(CREATE_TABLE);

}

catch (Exception e)

{

UpdataAdapter();

}

}

public boolean onKeyUp(intkeyCode, KeyEvent event)

{

switch (keyCode)

{

caseKeyEvent.KEYCODE_DPAD_LEFT:

AddData();

break;

caseKeyEvent.KEYCODE_DPAD_RIGHT:

DeleteData();

break;

case KeyEvent.KEYCODE_1:

UpData();

break;

case KeyEvent.KEYCODE_2:

DeleteTable();

break;

case KeyEvent.KEYCODE_3:

DeleteDataBase();

break;

}

return true;

}

/* 删除数据库 */

public void DeleteDataBase()

{

this.deleteDatabase(DATABASE_NAME);

this.finish();

}

/* 删除一个表 */

public void DeleteTable()

{

mSQLiteDatabase.execSQL("DROPTABLE " + TABLE_NAME);

this.finish();

}

/* 更新一条数据 */

public void UpData()

{

ContentValues cv = new ContentValues();

cv.put(TABLE_NUM, miCount);

cv.put(TABLE_DATA, "修改后的数据" + miCount);

/* 更新数据 */

mSQLiteDatabase.update(TABLE_NAME,cv, TABLE_NUM + "=" + Integer.toString(miCount - 1), null);

UpdataAdapter();

}

/* 向表中添加一条数据 */

public void AddData()

{

ContentValues cv = newContentValues();

cv.put(TABLE_NUM, miCount);

cv.put(TABLE_DATA, "测试数据库数据" + miCount);

/* 插入数据 */

mSQLiteDatabase.insert(TABLE_NAME,null, cv);

miCount++;

UpdataAdapter();

}

/* 从表中删除指定的一条数据 */

public void DeleteData()

{

/* 删除数据 */

mSQLiteDatabase.execSQL("DELETEFROM " + TABLE_NAME + " WHERE _id=" +Integer.toString(miCount));

miCount--;

if (miCount < 0)

{

miCount = 0;

}

UpdataAdapter();

}

/* 更行试图显示 */

public void UpdataAdapter()

{

// 获取数据库PhonesCursor

Cursor cur =mSQLiteDatabase.query(TABLE_NAME, new String[] { TABLE_ID, TABLE_NUM,TABLE_DATA }, null, null, null, null, null);

miCount = cur.getCount();

if (cur != null &&cur.getCount() >= 0)

{

// ListAdapterListView和后台数据的桥梁

ListAdapter adapter = newSimpleCursorAdapter(this,

// 定义List中每一行的显示模板

// 表示每一行包含两个数据项

android.R.layout.simple_list_item_2,

// 数据库的Cursor对象

cur,

// 从数据库的TABLE_NUMTABLE_DATA两列中取数据

new String[] {TABLE_NUM, TABLE_DATA },

// NAMENUMBER对应的Views

new int[] {android.R.id.text1, android.R.id.text2 });

/* adapter添加到m_ListView */

m_ListView.setAdapter(adapter);

}

}

/* 按键事件处理 */

public boolean onKeyDown(intkeyCode, KeyEvent event)

{

if (keyCode ==KeyEvent.KEYCODE_BACK)

{

/* 退出时,不要忘记关闭 */

mSQLiteDatabase.close();

this.finish();

return true;

}

returnsuper.onKeyDown(keyCode, event);

}

}

例子:

/* 取得EditText中用户输入的字符串 */

String strInput = mEditText1.getText().toString();

if (isPhoneNumberValid(strInput) == true) {

/* 建构一个新的Intent并执行action.CALL的常数与透过Uri将字符串带入 */

Intent myIntentDial = new Intent(

"android.intent.action.CALL", Uri.parse("tel:"

+ strInput));

/* startActivity()方法中带入自定义的Intent对象以执行拨打电话的工作 */

startActivity(myIntentDial);

mEditText1.setText("");

} else {

mEditText1.setText("");

Toast.makeText(EX05_02.this, "输入的电话格式不符",

Toast.LENGTH_LONG).show();

}

/* 检查字符串是否为电话号码的方法,并回传true or false的判断值 */

publicstaticboolean isPhoneNumberValid(String phoneNumber) {

boolean isValid = false;

/*

* 可接受的电话格式有: * ^\\(? : 可以使用 "(" 作为开头 * (\\d{3}): 紧接着三个数字 * \\)? :

* 可以使用")"接续 * [- ]? : 在上述格式后可以使用具选择性的 "-". * (\\d{3}) : 再紧接着三个数字 * [-

* ]? : 可以使用具选择性的 "-" 接续. * (\\d{4})$: 以四个数字结束. * 可以比对下列数字格式: *

* (123)456-7890,123-456-7890, 1234567890, (123)-456-7890

*/

String expression = "^\\(?(\\d{3})\\)?[-]?(\\d{3})[- ]?(\\d{4})$";

String expression2 = "^\\(?(\\d{2})\\)?[-]?(\\d{4})[- ]?(\\d{4})$";

CharSequence inputStr = phoneNumber;

/* 建立Pattern */

Pattern pattern = Pattern.compile(expression);

/* Pattern 以参数传入MatcherRegularexpression */

Matcher matcher = pattern.matcher(inputStr);

/* 建立Pattern2 */

Pattern pattern2 = Pattern.compile(expression2);

/* Pattern2 以参数传入Matcher2Regularexpression */

Matcher matcher2 = pattern2.matcher(inputStr);

if (matcher.matches() || matcher2.matches()) {

isValid = true;

}

return isValid;

}

例子:

/*EditText1取得简讯收件人电话*/

String strDestAddress = mEditText1.getText().toString();

/*EditText2取得简讯文字内容*/

String strMessage = mEditText2.getText().toString();

/*建构一取得default instance SmsManager对象 */

SmsManager smsManager = SmsManager.getDefault();

// TODO Auto-generatedmethod stub

/*检查收件人电话格式与简讯字数是否超过70字符*/

if(isPhoneNumberValid(strDestAddress)==true && iswithin70(strMessage)==true)

{

try

{

/*两个条件都检查通过的情况下,发送简讯 *

* 先建构一PendingIntent对象并使用getBroadcast()方法进行Broadcast *

* PendingIntent,电话,简讯文字等参数传入sendTextMessage()方法发送简讯*/

PendingIntent mPI = PendingIntent.getBroadcast(EX05_03.this, 0, new Intent(), 0);

smsManager.sendTextMessage(strDestAddress, null, strMessage, mPI, null);

}

catch(Exception e)

{

e.printStackTrace();

}

Toast.makeText(EX05_03.this, "送出成功!!" , Toast.LENGTH_SHORT).show();

mEditText1.setText("");

mEditText2.setText("");

}

/*电话格式与简讯文字不符合条件时,使用Toast告知用户检查*/

else

{

/*电话格式不符*/

if (isPhoneNumberValid(strDestAddress)==false)

{

/*且字数超过70字符*/

if(iswithin70(strMessage)==false)

{

Toast.makeText(EX05_03.this, "电话号码格式错误+短信内容超过70,请检查!!", Toast.LENGTH_SHORT).show();

}

else

{

Toast.makeText(EX05_03.this, "电话号码格式错误,请检查!!" , Toast.LENGTH_SHORT).show();

}

}

/*字数超过70字符*/

elseif (iswithin70(strMessage)==false)

{

Toast.makeText(EX05_03.this, "短信内容超过70,请删除部分内容!!", Toast.LENGTH_SHORT).show();

}

}

}

});

}

/*检查字符串是否为电话号码的方法,并回传true or false的判断值*/

publicstaticboolean isPhoneNumberValid(String phoneNumber)

{

boolean isValid = false;

/* 可接受的电话格式有: * ^\\(? : 可以使用 "(" 作为开头 * (\\d{3}):

* 紧接着三个数字 * \\)? : 可以使用")"接续 * [- ]? :

* 在上述格式后可以使用具选择性的 "-". * (\\d{3}) :

* 再紧接着三个数字 * [- ]? :

* 可以使用具选择性的 "-" 接续. * (\\d{4})$:

* 以四个数字结束. * 可以比对下列数字格式:

** (123)456-7890, 123-456-7890, 1234567890, (123)-456-7890 */

String expression = "^\\(?(\\d{3})\\)?[- ]?(\\d{3})[- ]?(\\d{4})$";

/* 可接受的电话格式有: * ^\\(? :

* 可以使用 "(" 作为开头 * (\\d{2}):

* 紧接着两个数字 * \\)? : 可以使用")"接续 * [- ]? :

* 在上述格式后可以使用具选择性的 "-". * (\\d{4}) :

* 再紧接着四个数字 * [- ]? :

* 可以使用具选择性的 "-" 接续. * (\\d{4})$:

* 以四个数字结束. * 可以比对下列数字格式: *

*(123)456-7890, 123-456-7890, 1234567890, (123)-456-7890 */

String expression2 ="^\\(?(\\d{2})\\)?[- ]?(\\d{4})[- ]?(\\d{4})$";

CharSequence inputStr = phoneNumber;

/*建立Pattern*/ Pattern pattern = Pattern.compile(expression);

/*Pattern 以参数传入MatcherRegularexpression*/

Matcher matcher =pattern.matcher(inputStr);

/*建立Pattern2*/ Pattern pattern2 =Pattern.compile(expression2);

/*Pattern2 以参数传入Matcher2Regularexpression*/

Matcher matcher2=pattern2.matcher(inputStr);

if(matcher.matches()||matcher2.matches())

{

isValid = true;

}

return isValid;

}

publicstaticboolean iswithin70(String text)

{

if (text.length()<= 70)

returntrue;

else

returnfalse;

}

}

例子:

@Override

publicboolean onKey(View v, int keyCode, KeyEventevent)

{

// TODO Auto-generatedmethod stub

/*若使用者键入为正规email文字,enable 按钮反之则disable 按钮*/

if(isEmail(mEditText01.getText().toString()))

{

mButton01.setEnabled(true);

}

else

{

mButton01.setEnabled(false);

}

returnfalse;

}

});

/*设定onClickListener 让使用者点选Button时送出email*/

mButton01.setOnClickListener(new Button.OnClickListener()

{

@Override

publicvoid onClick(View v)

{

// TODO Auto-generatedmethod stub

/*透过Intent来发送邮件*/

Intent mEmailIntent =

new Intent(android.content.Intent.ACTION_SEND);

/*设定邮件格式为plain/text*/

mEmailIntent.setType("plain/text");

/*取得EditText01,02,03,04的值作为收件人地址,附件,主题,内容*/

strEmailReciver = new String[]{mEditText01.getText().toString()};

strEmailCc = new String[]{mEditText02.getText().toString()};

strEmailSubject = mEditText03.getText().toString();

strEmailBody = mEditText04.getText().toString();

/*将取得的字符串放入mEmailIntent*/

mEmailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, strEmailReciver);

mEmailIntent.putExtra(android.content.Intent.EXTRA_CC, strEmailCc);

mEmailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, strEmailSubject);

mEmailIntent.putExtra(android.content.Intent.EXTRA_TEXT, strEmailBody);

/*开启Gmail并将相关参数传入*/

startActivity(Intent.createChooser(mEmailIntent,getResources().getString(R.string.str_message)));

}

});

}

/*确认字符串是否为email格式并回传true or false*/

publicstaticboolean isEmail(String strEmail)

{

String strPattern = "^[a-zA-Z][\\w\\.-]*[a-zA-Z0-9]@[a-zA-Z0-9][\\w\\.-]*[a-zA-Z0-9]\\.[a-zA-Z][a-zA-Z\\.]*[a-zA-Z]$";

Pattern p = Pattern.compile(strPattern);

Matcher m = p.matcher(strEmail);

return m.matches();

}

}

显示具有图片的Toast:

// TODO Auto-generatedmethod stub

ImageView mView01 = new ImageView(EX05_07.this);

TextView mTextView = new TextView(EX05_07.this);

LinearLayout lay = newLinearLayout(EX05_07.this);

/*设定mTextView去抓取string*/

mTextView.setText(R.string.app_url);

/*判断mTextView的内容为何,并与系统做链接*/

Linkify.addLinks(mTextView,Linkify.WEB_URLS| Linkify.EMAIL_ADDRESSES|Linkify.PHONE_NUMBERS);

/*Toast方式显示*/

Toast toast = Toast.makeText(EX05_07.this, mTextView.getText(), Toast.LENGTH_LONG);

View textView = toast.getView();lay.setOrientation(LinearLayout.HORIZONTAL);

/*Toast里加上图片*/

mView01.setImageResource(R.drawable.icon);

/*Toast里显示图片*/lay.addView(mView01);

/*Toast里显示文字*/lay.addView(textView);

toast.setView(lay);

toast.show();

例子:

/*声明对象变量*/

private NotificationManager myNotiManager;

private Spinner mySpinner;

private ArrayAdapter<String> myAdapter;

privatestaticfinal String[] status =

{ "在线","离开","忙碌中","马上回来","脱机" };

@Override

protectedvoid onCreate(Bundle savedInstanceState)

{

super.onCreate(savedInstanceState);

/* 载入main.xml Layout */

setContentView(R.layout.main);

/* 初始化对象 */

myNotiManager=(NotificationManager)getSystemService(NOTIFICATION_SERVICE);

mySpinner=(Spinner)findViewById(R.id.mySpinner);

myAdapter=new ArrayAdapter<String>(this,

android.R.layout.simple_spinner_item,status);

/* 套用myspinner_dropdown自定义下拉菜单样式 */

myAdapter.setDropDownViewResource(R.layout.myspinner_dropdown);

/* ArrayAdapter加入Spinner对象中 */

mySpinner.setAdapter(myAdapter);

/* mySpinner加入OnItemSelectedListener */

mySpinner.setOnItemSelectedListener(new Spinner.OnItemSelectedListener()

{

@Override

publicvoid onItemSelected(AdapterView<?>arg0,View arg1,

int arg2,long arg3)

{

/* 依照选择的item来判断要发哪一个notification */

if(status[arg2].equals("在线"))

{

setNotiType(R.drawable.msn,"在线");

}

elseif(status[arg2].equals("离开"))

{

setNotiType(R.drawable.away,"离开");

}

elseif(status[arg2].equals("忙碌中"))

{

setNotiType(R.drawable.busy,"忙碌中");

}

elseif(status[arg2].equals("马上回来"))

{

setNotiType(R.drawable.min,"马上回来");

}

else

{

setNotiType(R.drawable.offine,"脱机");

}

}

@Override

publicvoid onNothingSelected(AdapterView<?> arg0)

{

}

});

}

/* 发出Notificationmethod */

privatevoid setNotiType(int iconId, String text)

{

/* 建立新的Intent,作为点选Notification留言条时,

* 会执行的Activity */

Intent notifyIntent=new Intent(this,EX05_08_1.class);

notifyIntent.setFlags( Intent.FLAG_ACTIVITY_NEW_TASK);

/* 建立PendingIntent作为设定递延执行的Activity */

PendingIntent appIntent=PendingIntent.getActivity(EX05_08.this,0,

notifyIntent,0);

/* 建立Notication,并设定相关参数 */

Notification myNoti=new Notification();

/* 设定statusbar显示的icon */

myNoti.icon=iconId;

/* 设定statusbar显示的文字讯息 */

myNoti.tickerText=text;

/* 设定notification发生时同时发出预设声音 */

myNoti.defaults=Notification.DEFAULT_SOUND;

/* 设定Notification留言条的参数 */

myNoti.setLatestEventInfo(EX05_08.this,"MSN登入状态",text,appIntent);

/* 送出Notification */

myNotiManager.notify(0,myNoti);

}

例子:

/* getSystemService取得WIFI_SERVICE */

mWiFiManager01 = (WifiManager) this.getSystemService(Context.WIFI_SERVICE);

/* 判断执行程序后的WiFi状态是否启动或启动中 */

if(mWiFiManager01.isWifiEnabled())

{

/* 判断WiFi状态是否已启动 */

if(mWiFiManager01.getWifiState()==WifiManager.WIFI_STATE_ENABLED)

{

/* WiFi已启动,将核取项打勾 */

mCheckBox01.setChecked(true);

/* 更改核取项文字为关闭WiFi*/

mCheckBox01.setText(R.string.str_uncheck);

}

else

{

/* WiFi未启动,将核取项勾选取消 */

mCheckBox01.setChecked(false);

/* 变更核取项文字为启动WiFi*/

mCheckBox01.setText(R.string.str_checked);

}

}

/* 调用拨号的画面 */

Intent myIntentDial = new Intent("android.intent.action.CALL_BUTTON");

权限

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

例子:

// 定义一个List,List对象为一级条目提供数据

List<Map<String, String>> groups = newArrayList<Map<String, String>>();

Map<String, String> group1 = new HashMap<String, String>();

group1.put("group", "group1");

Map<String, String> group2 = new HashMap<String, String>();

group2.put("group", "group2");

groups.add(group1);

groups.add(group2);

// 定义一个List为一级条目中第一条一级条目里面的内容

List<Map<String, String>> child1s = newArrayList<Map<String, String>>();

Map<String, String> child1 = new HashMap<String, String>();

child1.put("child", "child1");

Map<String, String> child2 = new HashMap<String, String>();

child2.put("child", "child1");

child1s.add(child1);

child1s.add(child2);

// 定义一个List为一级条目中第一条一级条目里面的内容

List<Map<String, String>> child2s = newArrayList<Map<String, String>>();

Map<String, String> child2Data = new HashMap<String,String>();

child2Data.put("child", "child2");

child2s.add(child2Data);

// 最终将两个二级条目的数据放在一个list

List<List<Map<String, String>>> childs = newArrayList<List<Map<String, String>>>();

childs.add(child1s);

childs.add(child2s);

/*

* 分析以下参数的含义

* 1.context

* 2.一级条目的数据

* 3.用来设置一级条目样式的布局文件

* 4.指定一级条目数据的keygroup1.put("group", "group1");

* 5.指定一级条目数据显示控件的ID

* 6.指定二级条目的数据

* 7.用来设置二级条目样式的布局文件

* 8.指定一级条目数据的key

* 9.指定二级条目数据显示控件的ID

*/

SimpleExpandableListAdapter sela = new SimpleExpandableListAdapter(

this, groups, R.layout.group, new String[] { "group" },

newint[] { R.id.groupTo }, childs, R.layout.child,

new String[] { "child" }, newint[] { R.id.childTo });

setListAdapter(sela);

//设置ImageButton的背景图片,方法原型为setImageDrawable(Drawable draw)

//getResources():返回当前应用程序包下的所有资源

((ImageButton)v).setImageDrawable(getResources().getDrawable(R.drawable.pinkrose));

setTitle(" "+keyCode); //将当前按键的keyCode显示到标题栏中,方便测试观察

解释JSON,需要加入json.lib

private String jsonData="[{\"name\":\"jack\",\"age\":\"20\"},{\"name\":\"rose\",\"age\":\"60\"}]";

JsonUtils ju=new JsonUtils();

ju.parseJson(jsonData);

publicvoid parseJson(String jsonData) throws Exception

{

//如果需要解析Json数据,首先要生成一个JsonReader对象

JsonReader jr=new JsonReader(newStringReader(jsonData));

jr.beginArray();

while(jr.hasNext())

{

jr.beginObject();

while(jr.hasNext())

{

StringtagName=jr.nextName();

if(tagName.equals("name"))

{

System.out.println("name---->"+jr.nextString());

}

elseif(tagName.equals("age"))

{

System.out.println("age---->"+jr.nextInt());

}

}

jr.endObject();

}

jr.endArray();

}

liearLayout = (LinearLayout) this.findViewById(R.id.layout);

//获取main.xmlidlayoutliearLayout对象

TextView txtFont = new TextView(this);//声明一个TextView对象

ViewGroup.LayoutParamslayoutParams = new ViewGroup.LayoutParams(//声明ViewGroup.LayoutParams对象

ViewGroup.LayoutParams.FILL_PARENT,

//设置布局参数对象的宽度

ViewGroup.LayoutParams.WRAP_CONTENT);

//设置布局参数对象的高度

txtFont.setLayoutParams(layoutParams);

//txtFontlayoutParams对象指定宽度和高度布局

txtFont.setText("通过代码实现布局示例1");

//设置txtFont上面显示的文字

txtFont.setTextColor(Color.BLACK);

//设置字体颜色为黑色

liearLayout.addView(txtFont);

//txtFont添加到liearLayout布局上

liearLayoutMain = (LinearLayout) this.findViewById(R.id.layout); // 获取main.xmlidlayoutliearLayout对象

TextView bookName = new TextView(this);// 声明一个TextView对象

ViewGroup.LayoutParams bookNameParams = newViewGroup.LayoutParams(// 声明ViewGroup.LayoutParams对象

ViewGroup.LayoutParams.FILL_PARENT, // 设置布局参数对象的宽度

ViewGroup.LayoutParams.WRAP_CONTENT); // 设置布局参数对象的高

bookName.setLayoutParams(bookNameParams);// 设置bookName的布局方式

bookName.setText("桂林上水甲天下"); // 设置bookName上面显示的文字

bookName.setTextColor(Color.BLACK);// 设置bookName的文字颜色

bookName.setGravity(Gravity.CENTER);// 设置bookName文字居中显示

TextPaint bttp = bookName.getPaint();// 获取TextPaint对象

bttp.setFakeBoldText(true);// 设置bookName加粗显示

TextView bookDesc = new TextView(this);// 声明一个TextView对象

LinearLayout.LayoutParams bookDescParams = newLinearLayout.LayoutParams(// 声明ViewGroup.LayoutParams对象

ViewGroup.LayoutParams.WRAP_CONTENT, // 设置布局参数对象的宽度

ViewGroup.LayoutParams.WRAP_CONTENT); // 设置布局参数对象的高度

bookDesc.setLayoutParams(bookDescParams);// 设置bookDesc的布局方式

bookDesc.setText(R.string.desc); // 设置txtFont上面显示的文字

bookDesc.setTextColor(Color.BLACK);

ImageView bookPic = new ImageView(this);// 声明一个ImageView对象

LinearLayout.LayoutParams bookPicParams = newLinearLayout.LayoutParams(

251, 183);

bookPicParams.setMargins(25, 0, 0, 5);// 设置边距,方法原型void setMargins (int

// left, int top, int right, int

// bottom)

bookPic.setLayoutParams(bookPicParams);

bookPic.setBackgroundResource(R.drawable.guilin);// 设置ImageView的背景图

liearLayoutMain.addView(bookName); // bookName添加到liearLayoutMain布局上

liearLayoutMain.addView(bookPic);// bookPic添加到liearLayoutMain布局上

liearLayoutMain.addView(bookDesc);// bookDesc添加到liearLayoutMain布局上

QQ登陆页面:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:orientation="vertical" android:layout_width="fill_parent"

android:layout_height="fill_parent" android:background="@drawable/loginbackground">

<!-- 登录上半部分界面布局-->

<LinearLayout android:orientation="vertical"

android:layout_width="300px" android:layout_height="200px"

android:background="@drawable/loginbg" android:layout_marginTop="51px"

android:layout_marginLeft="10px" android:layout_marginRight="10px">

<LinearLayout android:orientation="horizontal"

android:layout_width="match_parent" android:layout_height="wrap_content"

android:layout_marginLeft="10px" android:layout_marginRight="10px"

android:layout_marginTop="10px">

<!-- QQ头像图片 -->

<!--ImageView:图片组件,用来显示图片的。该组件的详细属性使用会在第4章中详细讲解 -->

<ImageView android:layout_width="wrap_content"

android:layout_height="wrap_content" android:background="@drawable/qqpic" />

<!-- 账号密码文本框-->

<TableLayout android:layout_width="wrap_content"

android:layout_height="wrap_content">

<!-- 第一行 -->

<TableRow>

<!--

EditText:文本框组件,android:singleLine="true":表示该文本框为单行

该组件的详细属性使用会在第4章中详细讲解

-->

<EditText android:hint="账号" android:layout_width="210px"

android:layout_height="wrap_content" android:singleLine="true" />

</TableRow>

<!-- 第二行 -->

<TableRow>

<!--android:password="true":表示该文本框是用来输入密码的,输入的字符会以某种回显字符方式显示 -->

<EditText android:hint="密码" android:layout_width="210px"

android:layout_height="wrap_content" android:singleLine="true"

android:password="true" />

</TableRow>

</TableLayout>

</LinearLayout>

<!-- 记住密码和自动登录复选框的TableLayout布局 -->

<TableLayout android:layout_width="wrap_content"

android:layout_height="wrap_content" android:layout_marginLeft="10px">

<!-- 第一行 -->

<TableRow>

<!--

CheckBox:复选框组件,android:checked="true":默认选中,该组件的详细属性使用会在第4章中详细讲解

-->

<CheckBox android:checked="true"android:text="记住密码"

android:textColor="#FF000000" />

<CheckBox android:checked="true"android:layout_marginLeft="68px"

android:textColor="#FF000000" android:text="自动登录" />

</TableRow>

</TableLayout>

<!-- 登录按钮 -->

<!-- ImageButton:图片按钮,该按钮上面可以显示图片,该组件的详细属性使用会在第4章中详细讲解 -->

<ImageButton android:layout_width="164px"

android:layout_height="35px" android:layout_gravity="center"

android:background="@drawable/loginbutt" />

</LinearLayout>

<!-- 界面底部的四个复选框的TableLayout布局-->

<TableLayout android:layout_width="wrap_content"

android:layout_height="wrap_content" android:layout_marginLeft="10px"

android:layout_marginTop="40px">

<TableRow>

<CheckBox android:text="隐身登录" android:textColor="#FF000000"/>

<CheckBox android:layout_marginLeft="68px"

android:textColor="#FF000000" android:text="开启振动" />

</TableRow>

<TableRow>

<CheckBox android:text="接收群消息" android:textColor="#FF000000"/>

<CheckBox android:layout_marginLeft="68px"

android:textColor="#FF000000" android:text="静音登录" />

</TableRow>

</TableLayout>

</LinearLayout>

例子:

publicclass MyAccelerometer_Activity extends Activity

{

SensorManager mySensorManager;//SensorManager对象引用

//加速度传感器

Sensor myAccelerometer;

TextView tvX; //TextView对象引用

TextView tvY; //TextView对象引用

TextView tvZ; //TextView对象引用

TextView info;

@Override

publicvoid onCreate(Bundle savedInstanceState)

{

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

tvX = (TextView)findViewById(R.id.tvX); //用于显示x轴方向加速度

tvY = (TextView)findViewById(R.id.tvY); //用于显示y轴方向加速度

tvZ = (TextView)findViewById(R.id.tvZ); //用于显示z轴方向加速度

info= (TextView)findViewById(R.id.info);//用于显示手机中加速度传感器的相关信息

mySensorManager =(SensorManager)getSystemService(SENSOR_SERVICE);//获得SensorManager对象

myAccelerometer=mySensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);

String str="\n名字: "+myAccelerometer.getName()+"\n电池 :"+myAccelerometer.getPower()+

"\n类型 :"+myAccelerometer.getType()+"\nVendor:"+myAccelerometer.getVendor()+

"\n版本: "+myAccelerometer.getVersion()+"\n幅度: "+myAccelerometer.getMaximumRange();

info.setText(str);//将信息字符串赋予名为infoTextView

}

@Override

protectedvoid onResume() //重写onResume方法

{

super.onResume();

mySensorManager.registerListener(mySensorListener, myAccelerometer,SensorManager.SENSOR_DELAY_NORMAL);

}

@Override

protectedvoid onPause()//重写onPause方法

{

super.onPause();

mySensorManager.unregisterListener(mySensorListener);//取消注册监听器

}

private SensorEventListener mySensorListener = newSensorEventListener()

{//开发实现了SensorEventListener接口的传感器监听器

@Override

publicvoid onAccuracyChanged(Sensor sensor, int accuracy)

{

}

@Override

publicvoid onSensorChanged(SensorEvent event)

{

float []values=event.values;//获取三个轴方向感上的加速度值

tvX.setText("x轴方向上的加速度为:"+values[0]);

tvY.setText("y轴方向上的加速度为:"+values[1]);

tvZ.setText("z轴方向上的加速度为:"+values[2]);

}

};

例子:

publicclass MyGyroscope_Activity extends Activity {

SensorManager mySensorManager;//SensorManager对象引用

Sensor myGyroscope; //陀螺仪传感器

TextView tvX; //TextView对象引用

TextView tvY; //TextView对象引用

TextView tvZ; //TextView对象引用

@Override

publicvoid onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

tvX = (TextView)findViewById(R.id.tvX); //用于显示x轴方向加速度

tvY = (TextView)findViewById(R.id.tvY); //用于显示y轴方向加速度

tvZ = (TextView)findViewById(R.id.tvZ); //用于显示z轴方向加速度

mySensorManager =(SensorManager)getSystemService(SENSOR_SERVICE);//获得SensorManager对象

myGyroscope=mySensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION);

}

@Override

protectedvoid onResume() //重写onResume方法

{

super.onResume();

mySensorManager.registerListener(mySensorListener, myGyroscope, SensorManager.SENSOR_DELAY_NORMAL);

}

@Override

protectedvoid onPause()//重写onPause方法

{

super.onPause();

mySensorManager.unregisterListener(mySensorListener);//取消注册监听器

}

private SensorEventListener mySensorListener = newSensorEventListener()

{//开发实现了SensorEventListener接口的传感器监听器

@Override

publicvoid onAccuracyChanged(Sensor sensor, int accuracy)

{

}

@Override

publicvoid onSensorChanged(SensorEvent event)

{

float []values=event.values;//获取三个轴方向感上的加速度值

System.out.println(values.length);

tvX.setText("沿x轴旋转的角速度为:"+values[0]);

tvY.setText("沿y轴旋转的角速度为:"+values[1]);

tvZ.setText("沿z轴旋转的角速度为:"+values[2]);

}

};

例子:

publicclass MyLightSensor_Activity extends Activity

{

//SensorManager对象引用

SensorManager mySensorManager;

//光照传感器

Sensor myLightSensor;

TextView tvX; //TextView对象引用

TextView info;

@Override

publicvoid onCreate(Bundle savedInstanceState)

{

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

tvX = (TextView)findViewById(R.id.tvX);

info= (TextView)findViewById(R.id.info);

//获得SensorManager对象

mySensorManager =(SensorManager)getSystemService(SENSOR_SERVICE);

myLightSensor=mySensorManager.getDefaultSensor(Sensor.TYPE_LIGHT);

String str="\n名字: "+myLightSensor.getName()+"\n电池 :"+myLightSensor.getPower()+

"\n类型 :"+myLightSensor.getType()+"\nVendor:"+myLightSensor.getVendor()+

"\n版本: "+myLightSensor.getVersion()+"\n幅度: "+myLightSensor.getMaximumRange();

info.setText(str);//将信息字符串赋予名为infoTextView

}

@Override

protectedvoid onResume() //重写onResume方法

{

mySensorManager.registerListener(mySensorListener, myLightSensor,SensorManager.SENSOR_DELAY_NORMAL);

super.onResume();

}

@Override

protectedvoid onPause()

{ //重写onPause方法

mySensorManager.unregisterListener(mySensorListener); //取消注册监听器

super.onPause();

}

//开发实现了SensorEventListener接口的传感器监听器

private SensorEventListener mySensorListener = newSensorEventListener()

{

@Override

publicvoid onAccuracyChanged(Sensor sensor, int accuracy)

{

}

@Override

publicvoid onSensorChanged(SensorEvent event)

{

float []values=event.values;

tvX.setText("光强为:"+values[0]);

}

};

}

例子:

publicclass MyMagneticFieldSensor_Activity extends Activity

{

//SensorManager对象引用

SensorManager mySensorManager;

//温度传感器

Sensor myMagnetic_field_Sensor;

TextView tvX,tvY,tvZ,info; //TextView对象引用

@Override

publicvoid onCreate(Bundle savedInstanceState)

{

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

tvX = (TextView)findViewById(R.id.tvX);

tvY = (TextView)findViewById(R.id.tvY);

tvZ = (TextView)findViewById(R.id.tvZ);

info=(TextView)findViewById(R.id.info);

//获得SensorManager对象

mySensorManager =(SensorManager)getSystemService(SENSOR_SERVICE);

myMagnetic_field_Sensor=mySensorManager.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD);

String str="\n名字: "+myMagnetic_field_Sensor.getName()+"\n电池 :"+myMagnetic_field_Sensor.getPower()+

"\n类型 :"+myMagnetic_field_Sensor.getType()+"\nVendor:"+myMagnetic_field_Sensor.getVendor()+

"\n版本: "+myMagnetic_field_Sensor.getVersion()+"\n幅度: "+myMagnetic_field_Sensor.getMaximumRange();

info.setText(str);//将信息字符串赋予名为infoTextView

}

@Override

protectedvoid onResume()//重写onResume方法

{

mySensorManager.registerListener(mySensorListener, myMagnetic_field_Sensor, SensorManager.SENSOR_DELAY_NORMAL);

super.onResume();

}

@Override

protectedvoid onPause()

{ //重写onPause方法

mySensorManager.unregisterListener(mySensorListener); //取消注册监听器

super.onPause();

}

//开发实现了SensorEventListener接口的传感器监听器

private SensorEventListener mySensorListener = newSensorEventListener()

{

@Override

publicvoid onAccuracyChanged(Sensor sensor, int accuracy)

{

}

@Override

publicvoid onSensorChanged(SensorEvent event)

{

float []values=event.values;

System.out.println(values.length+"=======");

tvX.setText("X轴方向磁场为:"+values[0]);

tvY.setText("Y轴方向磁场为:"+values[1]);

tvZ.setText("Z轴方向磁场为:"+values[2]);

}

};

}

例子:

publicclass MyOrientation_Activity extends Activity {

SensorManager mySensorManager;//SensorManager对象引用

Sensor myOrientation_Sensor;//方向传感器

TextView tvX,tvY,tvZ,info; //TextView对象引用

@Override

publicvoid onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

tvX = (TextView)findViewById(R.id.tvX);

tvY = (TextView)findViewById(R.id.tvY);

tvZ = (TextView)findViewById(R.id.tvZ);

info=(TextView)findViewById(R.id.info);

//获得SensorManager对象

mySensorManager =(SensorManager)getSystemService(SENSOR_SERVICE);

myOrientation_Sensor=mySensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION);

String str="\n名字: "+myOrientation_Sensor.getName()+"\n电池 :"+myOrientation_Sensor.getPower()+

"\n类型 :"+myOrientation_Sensor.getType()+"\nVendor:"+myOrientation_Sensor.getVendor()+

"\n版本: "+myOrientation_Sensor.getVersion()+"\n幅度: "+myOrientation_Sensor.getMaximumRange();

info.setText(str);//将信息字符串赋予名为infoTextView

}

@Override

protectedvoid onResume()//重写onResume方法

{

mySensorManager.registerListener(mySensorListener,

myOrientation_Sensor, SensorManager.SENSOR_DELAY_NORMAL);

super.onResume();

}

@Override

protectedvoid onPause() //重写onPause方法

{

mySensorManager.unregisterListener(mySensorListener); //取消注册监听器

super.onPause();

}

//开发实现了SensorEventListener接口的传感器监听器

private SensorEventListener mySensorListener = newSensorEventListener()

{

@Override

publicvoid onAccuracyChanged(Sensor sensor, int accuracy)

{

}

@Override

publicvoid onSensorChanged(SensorEvent event)

{

float []values=event.values;

System.out.println(values.length+"=======");

tvX.setText("手机沿Yaw轴转过的角度为:"+values[0]);

tvY.setText("手机沿Pitch轴转过的角度为:"+values[1]);

tvZ.setText("手机沿Roll轴转过的角度为:"+values[2]);

}

};

}

例子:

publicclass MyProximity_Activity extends Activity {

SensorManager mySensorManager;//SensorManager对象引用

Sensor myProximity_Sensor;//距离传感器

TextView tvX,info; //TextView对象引用

@Override

publicvoid onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

tvX = (TextView)findViewById(R.id.tvX);

info=(TextView)findViewById(R.id.info);

//获得SensorManager对象

mySensorManager =(SensorManager)getSystemService(SENSOR_SERVICE);

myProximity_Sensor=mySensorManager.getDefaultSensor(Sensor.TYPE_PROXIMITY);

String str="\n名字: "+myProximity_Sensor.getName()+"\n电池 :"+myProximity_Sensor.getPower()+

"\n类型 :"+myProximity_Sensor.getType()+"\nVendor:"+myProximity_Sensor.getVendor()+

"\n版本: "+myProximity_Sensor.getVersion()+"\n幅度: "+myProximity_Sensor.getMaximumRange();

info.setText(str);//将信息字符串赋予名为infoTextView

}

@Override

protectedvoid onResume()//重写onResume方法

{

mySensorManager.registerListener(mySensorListener,

myProximity_Sensor, SensorManager.SENSOR_DELAY_NORMAL);

super.onResume();

}

@Override

protectedvoid onPause() //重写onPause方法

{

mySensorManager.unregisterListener(mySensorListener); //取消注册监听器

super.onPause();

}

//开发实现了SensorEventListener接口的传感器监听器

private SensorEventListener mySensorListener = newSensorEventListener()

{

@Override

publicvoid onAccuracyChanged(Sensor sensor, int accuracy)

{

}

@Override

publicvoid onSensorChanged(SensorEvent event)

{

float []values=event.values;

tvX.setText("手机距离物体的距离为:"+values[0]);

}

};

}

例子:

publicclass MyTemperatureSensor_Activity extends Activity

{

//SensorManager对象引用

SensorManagermySensorManager;

//温度传感器

Sensor myTemperatureSensor;

TextView tvX,info; //TextView对象引用

@Override

publicvoid onCreate(Bundle savedInstanceState)

{

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

tvX = (TextView)findViewById(R.id.tvX);

info=(TextView)findViewById(R.id.info);

//获得SensorManager对象

mySensorManager = (SensorManager)getSystemService(SENSOR_SERVICE);

myTemperatureSensor=mySensorManager.getDefaultSensor(Sensor.TYPE_TEMPERATURE);

String str="\n名字: "+myTemperatureSensor.getName()+"\n电池 :"+myTemperatureSensor.getPower()+

"\n类型 :"+myTemperatureSensor.getType()+"\nVendor:"+myTemperatureSensor.getVendor()+

"\n版本: "+myTemperatureSensor.getVersion()+"\n幅度: "+myTemperatureSensor.getMaximumRange();

info.setText(str);//将信息字符串赋予名为infoTextView

}

@Override

protectedvoid onResume()//重写onResume方法

{

mySensorManager.registerListener(mySensorListener, myTemperatureSensor, SensorManager.SENSOR_DELAY_NORMAL);

super.onResume();

}

@Override

protectedvoid onPause()

{ //重写onPause方法

mySensorManager.unregisterListener(mySensorListener); //取消注册监听器

super.onPause();

}

//开发实现了SensorEventListener接口的传感器监听器

private SensorEventListener mySensorListener = newSensorEventListener()

{

@Override

publicvoid onAccuracyChanged(Sensor sensor, int accuracy)

{

}

@Override

publicvoid onSensorChanged(SensorEvent event)

{

float []values=event.values;

tvX.setText("温度为:"+values[0]);

}

};

}

例子:

publicclass OptionsMenuExample extends Activity {

/** Called when the activity is firstcreated. */

@Override

publicvoid onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);//加载资源文件

}

//点击Menu时,系统会调用该方法,初始化选项菜单(OptionsMenu

//并传入一个menu对象供你使用

@Override

publicboolean onCreateOptionsMenu(Menu menu) {

//add()方法是添加一个新的菜单项到menu中,四个参数含义为

//第一个参数:组标识,如果不分组的话值为Menu.NONE

//第二个参数:菜单项id,是菜单项的唯一标识,可以通过它判断操作了哪个菜单项

//第三个参数:菜单项摆放的顺序

//第四个参数:菜单项上显示的文字

MenuItem homeMenuItem = menu.add(Menu.NONE, 0, 0, "主页");//添加菜单项

homeMenuItem.setIcon(R.drawable.home);//为菜单项设置图标

MenuItem printMenuItem = menu.add(Menu.NONE, 1, 1, "打印");

printMenuItem.setIcon(R.drawable.print);

MenuItem saveMenuItem = menu.add(Menu.NONE, 2, 2, "保存");

saveMenuItem.setIcon(R.drawable.save);

MenuItem searchMenuItem = menu.add(Menu.NONE, 3, 3, "搜索");

searchMenuItem.setIcon(R.drawable.search);

MenuItem delMenuItem = menu.add(Menu.NONE, 4, 4, "删除");

delMenuItem.setIcon(R.drawable.del);

MenuItem settingMenuItem = menu.add(Menu.NONE, 5, 5, "设置");

settingMenuItem.setIcon(R.drawable.setting);

MenuItem aboutMenuItem = menu.add(Menu.NONE, 6, 6, "关于");

aboutMenuItem.setIcon(R.drawable.about);

returnsuper.onCreateOptionsMenu(menu);

}

// 菜单项被选择触发该方法

@Override

publicboolean onOptionsItemSelected(MenuItem item) {

super.onOptionsItemSelected(item);

switch (item.getItemId()) {//获取菜单项的id

case 0:

//item.getTitle():获取菜单项上显示的文字

Toast.makeText(this, "点击了’"+item.getTitle()+"‘菜单", Toast.LENGTH_LONG).show();

break;

case 1:

Toast.makeText(this, "点击了‘"+item.getTitle()+"’菜单", Toast.LENGTH_LONG).show();

break;

case 2:

Toast.makeText(this, "点击了‘"+item.getTitle()+"’菜单", Toast.LENGTH_LONG).show();

break;

case 3:

Toast.makeText(this, "点击了‘"+item.getTitle()+"’菜单", Toast.LENGTH_LONG).show();

break;

case 4:

Toast.makeText(this, "点击了‘"+item.getTitle()+"’菜单", Toast.LENGTH_LONG).show();

break;

case 5:

Toast.makeText(this, "点击了‘"+item.getTitle()+"’菜单", Toast.LENGTH_LONG).show();

break;

case 6:

Toast.makeText(this, "点击了‘"+item.getTitle()+"’菜单", Toast.LENGTH_LONG).show();

break;

}

returntrue;

}

//选项菜单(OptionsMenu)被关闭时触发该方法,三种情况下选项菜单(OptionsMenu)会被关闭

//1.back按钮被点击,2.menu按钮被再次按下,3.选择了某一个菜单项

@Override

publicvoid onOptionsMenuClosed(Menu menu) {

Toast.makeText(this, "选项菜单(OptionsMenu)被关闭了", Toast.LENGTH_LONG).show();

}

//选项菜单(OptionsMenu)显示之前调用该方法

//返回值:false:此方法就把用户点击menu的动作给屏蔽了,onCreateOptionsMenu方法将不会被调用

@Override

publicboolean onPrepareOptionsMenu(Menu menu) {

Toast.makeText(this,

"选项菜单(OptionsMenu)显示之前onPrepareOptionsMenu方法会被调用",

Toast.LENGTH_LONG).show();

returntrue;

}

}

String mobile =mobileText.getText().toString();//得到了用户输入的手机号

Intent intent = new Intent("android.intent.action.CALL", Uri.parse("tel:"+ mobile));

startActivity(intent);

例子:

// 将数据保存到SharePreperence

// 第一个参数为文件名,会自动帮你创建不用指定文件名后缀,会自动添加上.xml

// 第二个参数为访问的模式,Context.MODE_PRIVATE表示只可以本程序访问

//参数为:Context.MODE_WORLD_READABLE表示外部程序可以访问

SharedPreferences sp = getSharedPreferences("itcast",

Context.MODE_WORLD_READABLE);

@Override

publicvoid onClick(View v) {

// 判读点击的是哪一个按钮

switch (v.getId()) {

// 如果是保存按钮

case R.id.save:

String name = ming.getText().toString();

String a = age.getText().toString();

// 要保存数据要先获取编辑器对象

Editor e = sp.edit();

// 下面两个是放在内存中的

e.putString("name", name);

e.putString("age", a);

// 如果不真执行commit()方法,那么上面的就是保存在内存中,没有保存在文件中

e.commit();

// 显示提示框

Toast.makeText(MainActivity.this, R.string.success, 1).show();

break;

//如果是恢复按钮

case R.id.huifu:

//将值设置进文本中,sharePreference里面拿出值来

ming.setText(sp.getString("name", ""));

age.setText(sp.getString("age", ""));

break;

}

}

<!--

android:numStars="5"表示显示多少个星星

android:stepSize="1.0"表示一次亮0.5颗星,因为上面设置了5个星

-->

<RatingBar android:id="@+id/rating" android:layout_width="wrap_content"

android:layout_height="wrap_content" android:numStars="5"

android:stepSize="0.5" />

// 获取string.xml文件的文本

final CharSequence title = getString(R.string.title);

final CharSequence content = getString(R.string.content);

final CharSequence title = getString(R.string.title);

final CharSequence content = getString(R.string.content);

// 顯示Progress對話框

pd = ProgressDialog.show(Activity01.this, title, content);

// 啟動線程

new Thread() {

publicvoid run() {

try {

Thread.sleep(3000);

} catch (InterruptedException e) {

e.printStackTrace();

}

finally

{

//卸载所创建的Dialoy对象

pd.dismiss();

}

}

}.start();

// 设置进度条的最大值

seek.setMax(100);

// 进度条发生变化

seek.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {

// 当用户结束滑动滑块时

@Override

publicvoid onStopTrackingTouch(SeekBar seekBar) {

System.out.println("stop-->" + seekBar.getProgress());

}

// 当用户开始滑动滑块时

@Override

publicvoid onStartTrackingTouch(SeekBar seekBar) {

System.out.println("start-->" + seekBar.getProgress());

}

// 当进度条发生变化时

@Override

publicvoid onProgressChanged(SeekBar seekBar, int progress,

boolean fromUser) {

System.out.println(progress);

}

});

// 短信管理器

SmsManager smsManager =SmsManager.getDefault();

// 把短信内容拆分,因为短信太大要进行两条短信发送,要用本身提供的方法

ArrayList<String> arrList= smsManager.divideMessage(con);

for (String text : arrList) {

// hao为发送到的地址,text为短信内容,

smsManager.sendTextMessage(hao,null, text, null, null);

}

// 短信发送成功,提示信息

/*

* 第一个参数表示上下文,应用所运行到的信息,相当于applicaiton第二个参数表示提示的信息第三个参数表示显示的时间

*/

Toast.makeText(MainActivity.this, R.string.successful,2).show();

// 构建一个DefaultSmsManager对象

SmsManager smsManager =SmsManager.getDefault();

// 构建PendingIntent对象,并使用getBroadcast()广播

PendingIntent pendingIntent =PendingIntent.getBroadcast(

SendActivity.this, 0, new Intent(), 0);

smsManager.sendTextMessage(strAddressee,null, strMessage,

pendingIntent, null);// 发送短信消息

Toast.makeText(SendActivity.this, "短信发送成功", 1000).show();//信息提示方法

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

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

蓝牙

// 得到一个本地蓝牙适配器, getDefaultAdapter()函数用于获取本地蓝牙适配器  

bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();

if (bluetoothAdapter == null) {// 如果适配器为null,则不支持蓝牙

Toast.makeText(this, "该设备不支持蓝牙", Toast.LENGTH_LONG).show();

finish();// 关闭程序

return;

}

if (bluetoothAdapter.isEnabled()) {// 判断蓝牙是否开启

statusText.setText("蓝牙状态:开启");// 设置蓝牙状态提示

} else {

statusText.setText("蓝牙状态:关闭");// 设置蓝牙状态提示

}

/**

* 打开蓝牙方法

*/

publicvoid openBluetooth() {

if (!bluetoothAdapter.isEnabled()) {// 判断蓝牙是否打开

Intent enableIntent = new Intent(

BluetoothAdapter.ACTION_REQUEST_ENABLE);// 打开蓝牙

startActivity(enableIntent);

// 提示蓝牙正在开启中

Toast.makeText(this, "蓝牙开启中......", Toast.LENGTH_SHORT).show();

} else {

// 提示蓝牙已经开启

Toast.makeText(this, "蓝牙已经开启", Toast.LENGTH_SHORT).show();

}

}

/**

* 关闭蓝牙方法

*/

publicvoid closeBluetooth() {

if (bluetoothAdapter.isEnabled()) {// 判断蓝牙是否打开

bluetoothAdapter.disable();// 关闭蓝牙

// 提示蓝牙已经关闭

Toast.makeText(this, "蓝牙已经关闭", Toast.LENGTH_SHORT).show();

} else {

// 提示蓝牙是关闭的

Toast.makeText(this, "蓝牙是关闭的", Toast.LENGTH_SHORT).show();

}

}

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

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

SharedPreferences例子

private String info = "user_info";// 共享文件名

/**

* user(用户名),password()保存到文件

*/

publicvoid saveData() {

SharedPreferences sPreferences = getSharedPreferences(info, 0);//获取SharedPreferences

Editor editor =sPreferences.edit();//打开SharedPreferences的编辑状态

editor.putString("User", user);//存储用户名

editor.putString("Password", password);//存储密码

editor.commit();//保存数据

//提示用户登录成功,并获取先保存的文件中

new AlertDialog.Builder(SharedData.this).setTitle("登录信息").setMessage(

"用户 " + sPreferences.getString("User", "") + " 登录成功")

.setPositiveButton("确定", new OnClickListener() {

@Override

publicvoid onClick(DialogInterface arg0, int arg1) {

}

}).show();

}

/**

* 获取文件中的数据,如果文件中存在相应的数据,把该数据赋值到相应的EditText组件对象

*/

publicvoid getData() {

SharedPreferences sPreferences = getSharedPreferences(info, 0);//获取SharedPreferences

user = sPreferences.getString("User", "");//获取info文件中User对应的数据

password = sPreferences.getString("Password", "");//获取info文件中Password对应的数据

userText.setText(user);//user赋值给用户EditText组件对象

passwordText.setText(password);//password赋值给密码EditText组件对象

}

例子:

/**

* 这是TCP通信协议的服务器端

*/

@Override

publicvoid run() {

// 声明一个ServerScoket对象

ServerSocket ss = null;

try {

// 创建一个ServerSocket对象,并让这个Scoekt4567端口监听s

ss = new ServerSocket(4567);

// 调用ServerSocketaccept()方法,接受客户端发送的请求

// 当客户端没有发送请求,accept处于阻塞的一种状态,不再往下运行

Socket s = ss.accept();

// Socket当中得到IntputStream(),读取客户端传过来的数据

InputStream is = s.getInputStream();

byte[] buff = newbyte[1024 * 4];

int temp = 0;

// InputStream中读取客户端所发送的数据

while ((temp = is.read(buff)) != -1) {

System.out.println(new String(buff, 0, temp));

}

} catch (IOException e) {

// TODO Auto-generatedcatch block

e.printStackTrace();

} finally {

try {

ss.close();

} catch (IOException e) {

// TODO Auto-generatedcatch block

e.printStackTrace();

}

}

/**

* 这是UDP通信协议的服务器端

*/

@Override

publicvoid run() {

try {

//创建一个DatagramSocket对象,监听4567端口

DatagramSocket ds=new DatagramSocket(4567);

byte data[]=newbyte[1024];

//使用UDP所发送的数据包,创建一个空的DatagramPacket用于接收客户端的内容

DatagramPacketdp=new DatagramPacket(data, data.length);

//使用receive方法接收客户端所发送过来的数据,同样是一个阻塞的方法

ds.receive(dp);

System.out.println(dp.getLength());

//这样可以获取包的数据

String result=new String(dp.getData());

System.out.println(result);

} catch (Exception e) {

// TODO Auto-generatedcatch block

e.printStackTrace();

}

}

}

例子:

// 第二步:为下拉列表项定义适配器

// createFromResource(Context context, int textArrayResId, int

// textViewResId) 参数的含义为

// 1.context:应用上下文

// 2.textArrayResId:适配器的数据源,这里的R.array.colors是在res/values/arrays.xml中定义的数组

// 3.Spinner上显示数据的视图。这里用Android自带的简单的下拉菜单方式

ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(

this, R.array.colors, android.R.layout.simple_spinner_item);

// 第三步:设置当Spinner按下时在下拉列表里显示数据视图。

adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

// 第四步:为Spinner添加适配器

mySpinner.setAdapter(adapter);

// 第五步:为Spinner添加事件监听,setOnItemSelectedListener该事件在菜单被选中时触发

mySpinner.setOnItemSelectedListener(new OnItemSelectedListener() {

/*

* 功能:Spinner的项被选择时触发该方法 parent 当前被选择的对象所在的 AdapterView view

* AdapterView中被点击的View position 当前点击项在View的位置,从0开始,0是第一项 id

* 被选择项的id

*/

@Override

publicvoid onItemSelected(AdapterView<?> parent, View view,

int position, long id) {

// TODO Auto-generatedmethod stub

// 将当前点击项的坐标和id显示出来

//getSelectedItem():获取选中项的值

Toast.makeText(

SpinnerExample.this,

"position:" + position + " id:" + id + "value:"

+ mySpinner.getSelectedItem().toString(),

Toast.LENGTH_SHORT).show();

}

@Override

publicvoid onNothingSelected(AdapterView<?> arg0) {

// TODO Auto-generatedmethod stub

Toast.makeText(SpinnerExample.this, "unselected",

Toast.LENGTH_SHORT).show();

}

});

例子:

allCitys = new ArrayList<String>();// 创建城市ArrayList,并添加三个元素

allCitys.add("北京");

allCitys.add("上海");

allCitys.add("深圳");

mySpinner = (Spinner) this.findViewById(R.id.mySpinner);// XML布局文件中获取Spinner对象

adapter = new ArrayAdapter<String>(this,

android.R.layout.simple_spinner_item, allCitys);

adapter

.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);// 设置下拉菜单下拉项的布局

mySpinner.setAdapter(adapter);// Spinner添加适配器

// 添加按钮单击事件

addBut.setOnClickListener(new OnClickListener() {

@Override

publicvoid onClick(View v) {

// TODO Auto-generatedmethod stub

StringnewCity = newCityEdit.getText().toString();// 获取文本框中输入的城市

for (int i = 0; i < adapter.getCount(); i++) {

if (newCity.equals(adapter.getItem(i))) {// 判断当前选中的项和文本框中输入的是否相同

Toast.makeText(SpinnerExample2.this, "该项已存在",

Toast.LENGTH_SHORT).show();

return;

}

}

if (!newCity.trim().equals("")) {// 文本框的内容不为“”

adapter.add(newCity);// 将文本框中输入的信息添加到adapter

int position = adapter.getPosition(newCity);// 获取newCityArrayAdapter中的位置

mySpinner.setSelection(position);// 选中下拉菜单中下标为position的项

newCityEdit.setText("");// 清空文本框

}

}

});

// 删除按钮单击事件

removeBut.setOnClickListener(new OnClickListener() {

@Override

publicvoid onClick(View v) {

// TODO Auto-generatedmethod stub

if (mySpinner.getSelectedItem() != null) {

adapter.remove(mySpinner.getSelectedItem().toString());// adapter中删除当前选中的项目

newCityEdit.setText("");

if (adapter.getCount() == 0) {// 如果adapter中没有项目,提示用户

Toast.makeText(SpinnerExample2.this, "没有项目可以移除",

Toast.LENGTH_SHORT).show();

}

}

}

});

// 当选择mySpinner中项目时触发该事件

mySpinner.setOnItemSelectedListener(new OnItemSelectedListener() {

@Override

publicvoid onItemSelected(AdapterView<?> parent, View view,

int position, long id) {

// TODO Auto-generatedmethod stub

newCityEdit.setText(parent.getSelectedItem().toString());// 将当前选中的项目显示在newCityEdit

}

@Override

publicvoid onNothingSelected(AdapterView<?> arg0) {

// TODO Auto-generatedmethod stub

}

});

}

例子:

//点击Menu时,系统会调用该方法,初始化选项菜单(OptionsMenu

//并传入一个menu对象供你使用

@Override

publicboolean onCreateOptionsMenu(Menu menu) {

// TODO Auto-generatedmethod stub

SubMenu fileMenu = menu.addSubMenu(1,1,1,"File");//menu添加子菜单

fileMenu.setHeaderIcon(R.drawable.file);//设置子菜单弹出框的标题图标

fileMenu.setHeaderTitle("File");//设置子菜单弹出框的标题文字

fileMenu.setIcon(R.drawable.file);//设置子菜单的图标

fileMenu.add(2,11,11,"New");//为子菜单添加二级菜单

fileMenu.add(2,12,12,"Save");//为子菜单添加二级菜单

fileMenu.add(2,13,13,"Close");//为子菜单添加二级菜单

SubMenu editMenu = menu.addSubMenu(1,2,2,"Edit");

editMenu.setHeaderIcon(R.drawable.edit);

editMenu.setHeaderTitle("Edit");

editMenu.setIcon(R.drawable.edit);

editMenu.add(2,21,21,"Redo");

editMenu.add(2,22,22,"UndoTyping");

returnsuper.onCreateOptionsMenu(menu);

}

// 菜单项被选择触发该方法

@Override

publicboolean onOptionsItemSelected(MenuItem item) {

// TODO Auto-generatedmethod stub

switch(item.getItemId()){

case 1:

Toast.makeText(this, "点击了’"+item.getTitle()+"‘菜单", Toast.LENGTH_LONG).show();

break;

case 2:

Toast.makeText(this, "点击了’"+item.getTitle()+"‘菜单", Toast.LENGTH_LONG).show();

break;

case 11:

Toast.makeText(this, "点击了File子菜单’"+item.getTitle()+"‘", Toast.LENGTH_LONG).show();

break;

case 12:

Toast.makeText(this, "点击了File子菜单’"+item.getTitle()+"‘", Toast.LENGTH_LONG).show();

break;

case 13:

Toast.makeText(this, "点击了File子菜单’"+item.getTitle()+"‘", Toast.LENGTH_LONG).show();

break;

case 21:

Toast.makeText(this, "点击了Edit子菜单’"+item.getTitle()+"‘", Toast.LENGTH_LONG).show();

break;

case 22:

Toast.makeText(this, "点击了Edit子菜单’"+item.getTitle()+"‘", Toast.LENGTH_LONG).show();

break;

}

returnsuper.onOptionsItemSelected(item);

}



例子:

Calendar myCalendar = Calendar.getInstance(Locale.CHINA); //初始化Calendar日历对象。

Date myDate=new Date();//获取当前日期Date对象

myCalendar.setTime(myDate);//Calendar对象设置时间为当前日期

year=myCalendar.get(Calendar.YEAR); //获取Calendar对象中的年

month=myCalendar.get(Calendar.MONTH);//获取Calendar对象中的月,0表示1月,1表示2....

day=myCalendar.get(Calendar.DAY_OF_MONTH);//获取这个月的第几天

hour=myCalendar.get(Calendar.HOUR_OF_DAY);//获取小时信息

minus=myCalendar.get(Calendar.MINUTE);//获取分钟信息

showTime.setText(year+"-"+(month+1)+"-"+day+" "+hour+":"+minus);//设置TextView组件上显示的日期信息

setTime.setOnClickListener(new OnClickListener(){//“设置日期按钮的单击事件

@Override

publicvoid onClick(View v) {

// TODO Auto-generatedmethod stub

//创建TimePickerDialog对象

//构造函数原型:TimePickerDialog(Context context,TimePickerDialog.OnTimeSetListener callBack, int hourOfDay, intminute, boolean is24HourView)

//参数含义依次为context:组件运行Activity,TimePickerDialog.OnTimeSetListener:选择时间事件

//hourOfDay:当前组件上显示小时,minute:当前组件上显示的分钟,is24HourView:是否是24小时方式显示,或者AM/PM方式显示

TimePickerDialog tpd=new TimePickerDialog(TimePickerDialogExample.this,newTimePickerDialog.OnTimeSetListener(){

@Override

publicvoid onTimeSet(TimePicker view, int hourOfDay,

int myminute) {

// TODO Auto-generatedmethod stub

showTime.setText(year+"-"+(month+1)+"-"+day+" "+hourOfDay+":"+myminute);

hour=hourOfDay;

minus=myminute;

}

},hour,minus,false);

tpd.show();

}

});

Toast例子:

toast = Toast.makeText(ToastExample.this, R.string.ToastText,

Toast.LENGTH_SHORT);

toast.setGravity(Gravity.CENTER, 0, 0);

LinearLayout view =(LinearLayout) toast.getView();// getView():获取ToastView对象

ImageView imgView = newImageView(ToastExample.this);// 创建ImageView对象

imgView.setImageResource(R.drawable.icon);// 设置imgView的背景图片

view.addView(imgView);// imgView添加到View

toast.setView(view);// view显示在Toast

toast.show();// 显示Toast

toast = new Toast(ToastExample.this);

LayoutInflater inflater = getLayoutInflater();// 获取LayoutInflater对象

// inflate():Layout文件转换为View,这里是将definetoast.xml中的myToastLayout组件转化为View

View myToastLayout =inflater.inflate(R.layout.definetoast,

(ViewGroup) findViewById(R.id.myToastLayout));

// 设置提示信息出现的位置

toast.setGravity(Gravity.RIGHT | Gravity.BOTTOM, 40, 40);

toast.setDuration(Toast.LENGTH_LONG);// 设置如何显示提示信息

toast.setView(myToastLayout);// myToastLayout显示在Toast

toast.show();// 显示Toast

Window window=this.getWindow();//获取当前ActivityWindow

//隐藏窗体的状态栏

window.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);

this.requestWindowFeature(Window.FEATURE_NO_TITLE); //隐藏窗体上方的标题栏

setContentView(R.layout.main);

this.setTitle("progressing...."); //设置标题栏上的文字

Window window=this.getWindow(); //获取当前ActivityWindow

this.requestWindowFeature(Window.FEATURE_PROGRESS); //标题栏显示滚动条

setContentView(R.layout.main);//设置当前窗体的布局管理文件

this.setProgressBarVisibility(true);//设置进度条可见

this.setProgress(1800);//设置第一进度条的长度

this.setSecondaryProgress(8000);//设置第二进度条的长度

MP3播放

/**

* MP3开始播放方法

*/

publicvoid start() {

try {

if (mediaPlayer != null) {// 判断MediaPlayer对象不为空

if (mediaPlayer.isPlaying()) {// 判断MediaPlayer对象正在播放中,并不执行以下程序

return;

}

}

stop();// 调用停止播放方法

mediaPlayer = MediaPlayer.create(this, R.raw.dudong);// 加载资源文件里的MP3文件

// 文件播放完毕监听事件

mediaPlayer

.setOnCompletionListener(newMediaPlayer.OnCompletionListener() {

@Override

publicvoid onCompletion(MediaPlayer arg0) {// 覆盖文件播出完毕事件

// 解除资源与MediaPlayer的赋值关系,让资源可以为其它程序利用

arg0.release();

startButton.setText("播放");

}

});

// 文件播放错误监听

mediaPlayer.setOnErrorListener(new MediaPlayer.OnErrorListener() {

@Override

publicboolean onError(MediaPlayer arg0, int arg1, int arg2) {

// 解除资源与MediaPlayer的赋值关系,让资源可以为其它程序利用

arg0.release();

returnfalse;

}

});

mediaPlayer.start();// 开始播放

startButton.setText("正在播放");

pauseButton.setText("暂停");

} catch (Exception e) {

e.printStackTrace();

}

}

/**

* MP3播放暂停方法

*/

publicvoid pause() {

try {

if (mediaPlayer != null) {// 判断MediaPlayer对象不为空

if (mediaPlayer.isPlaying()) {// 判断MediaPlayer对象正在播放中

mediaPlayer.pause();// 暂停播放

pauseButton.setText("取消暂停");

} else {

mediaPlayer.start();// 开始播放

pauseButton.setText("暂停");

}

}

} catch (Exception e) {

e.printStackTrace();

}

}

/**

* MP3停止播放方法

*/

publicvoid stop() {

try {

if (mediaPlayer != null) {// 判断MediaPlayer对象不为空

mediaPlayer.stop();// 停止播放

startButton.setText("播放");

}

} catch (Exception e) {

e.printStackTrace();

}

}

Sdcard获取MP3播放:

/**

* MP3开始播放方法

*/

publicvoid start() {

try {

if (mediaPlayer != null) {// 判断MediaPlayer对象不为空

if (mediaPlayer.isPlaying()) {// 判断MediaPlayer对象正在播放中,并不执行以下程序

return;

}

}

if (isPause) {// 判断MediaPlayer对象是否暂停,如果暂停就不重新播放

return;

}

mediaPlayer = new MediaPlayer();

// 文件播放完毕监听事件

mediaPlayer

.setOnCompletionListener(newMediaPlayer.OnCompletionListener() {

@Override

publicvoid onCompletion(MediaPlayer arg0) {// 覆盖文件播出完毕事件

// 解除资源与MediaPlayer的赋值关系,让资源可以为其它程序利用

mediaPlayer.release();

startButton.setText("播放");

isPause = false;// 取消暂停状态

mediaPlayer=null;

}

});

// 文件播放错误监听

mediaPlayer.setOnErrorListener(new MediaPlayer.OnErrorListener() {

@Override

publicboolean onError(MediaPlayer arg0, int arg1, int arg2) {

// 解除资源与MediaPlayer的赋值关系,让资源可以为其它程序利用

mediaPlayer.release();

isPause = false;// 取消暂停状态

mediaPlayer=null;

returnfalse;

}

});

String sdCard = Environment.getExternalStorageDirectory().getPath();

mediaPlayer.setDataSource(sdCard + File.separator + "dudong.mp3");// MediaPlayer设置数据源

mediaPlayer.prepare();// 准备播放

mediaPlayer.start();// 开始播放

startButton.setText("正在播放");

pauseButton.setText("暂停");

} catch (Exception e) {

e.printStackTrace();

}

}

/**

* MP3播放暂停方法

*/

publicvoid pause() {

try {

if (mediaPlayer != null) {// 判断MediaPlayer对象不为空

if (mediaPlayer.isPlaying()) {// 判断MediaPlayer对象正在播放中

mediaPlayer.pause();// 暂停播放

pauseButton.setText("取消暂停");

isPause = true;// 暂停状态

} else {

mediaPlayer.start();// 开始播放

pauseButton.setText("暂停");

}

}

} catch (Exception e) {

e.printStackTrace();

}

}

/**

* MP3停止播放方法

*/

publicvoid stop() {

try {

if (mediaPlayer != null) {// 判断MediaPlayer对象不为空

mediaPlayer.stop();// 停止播放

startButton.setText("播放");

pauseButton.setText("暂停");

isPause = false;// 取消暂停状态

}

} catch (Exception e) {

e.printStackTrace();

}

}

网络MP3播放:

/**

* MP3开始播放方法

*/

publicvoid start() {

try {

if (mediaPlayer != null) {// 判断MediaPlayer对象不为空

if (mediaPlayer.isPlaying()) {// 判断MediaPlayer对象正在播放中,并不执行以下程序

return;

}

}

if (isPause) {// 判断MediaPlayer对象是否暂停,如果暂停就不重新播放

return;

}

mediaPlayer = new MediaPlayer();

// 文件播放完毕监听事件

mediaPlayer

.setOnCompletionListener(newMediaPlayer.OnCompletionListener() {

@Override

publicvoid onCompletion(MediaPlayer arg0) {// 覆盖文件播出完毕事件

// 解除资源与MediaPlayer的赋值关系,让资源可以为其它程序利用

mediaPlayer.release();

startButton.setText("播放");

isPause = false;// 取消暂停状态

mediaPlayer = null;

}

});

// 文件播放错误监听

mediaPlayer.setOnErrorListener(new MediaPlayer.OnErrorListener() {

@Override

publicboolean onError(MediaPlayer arg0, int arg1, int arg2) {

// 解除资源与MediaPlayer的赋值关系,让资源可以为其它程序利用

mediaPlayer.release();

isPause = false;// 取消暂停状态

mediaPlayer = null;

returnfalse;

}

});

//MP3网络资源路径

String path = "http://5.gaosu.com/download/ring/000/086/8e2c23ec414592efdfad5353c21ce888.mp3";

mediaPlayer.setDataSource(path);// MediaPlayer设置数据源

mediaPlayer.prepare();// 准备播放

mediaPlayer.start();// 开始播放

startButton.setText("正在播放");

pauseButton.setText("暂停");

} catch (Exception e) {

e.printStackTrace();

}

}

/**

* MP3播放暂停方法

*/

publicvoid pause() {

try {

if (mediaPlayer != null) {// 判断MediaPlayer对象不为空

if (mediaPlayer.isPlaying()) {// 判断MediaPlayer对象正在播放中

mediaPlayer.pause();// 暂停播放

pauseButton.setText("取消暂停");

isPause = true;// 暂停状态

} else {

mediaPlayer.start();// 开始播放

pauseButton.setText("暂停");

}

}

} catch (Exception e) {

e.printStackTrace();

}

}

/**

* MP3停止播放方法

*/

publicvoid stop() {

try {

if (mediaPlayer != null) {// 判断MediaPlayer对象不为空

mediaPlayer.stop();// 停止播放

startButton.setText("播放");

pauseButton.setText("暂停");

isPause = false;// 取消暂停状态

}

} catch (Exception e) {

e.printStackTrace();

}

}

例子:

privateintselectedItem = -1;

private String[] mString;

staticfinalprivateintMENU_LIST1 = Menu.FIRST;

staticfinalprivateintMENU_LIST2 = Menu.FIRST + 1;

private ArrayAdapter<String> mla;

@Override

protectedvoid onCreate(Bundle savedInstanceState)

{

// TODO Auto-generatedmethod stub

super.onCreate(savedInstanceState);

}

@Override

protectedvoid onListItemClick(ListView l, View v, int position, long id)

{

// TODO Auto-generatedmethod stub

selectedItem = position;

Toast.makeText(EX04_20.this, mString[selectedItem], Toast.LENGTH_SHORT)

.show();

super.onListItemClick(l, v, position, id);

}

@Override

publicboolean onCreateOptionsMenu(Menu menu)

{

// TODO Auto-generatedmethod stub

/* menu群组ID */

int idGroup1 = 0;

/* Theorder position of the item */

int orderMenuItem1 = Menu.NONE;

int orderMenuItem2 = Menu.NONE + 1;

menu.add(idGroup1, MENU_LIST1,orderMenuItem1, R.string.str_menu_list1);

menu.add(idGroup1, MENU_LIST2,orderMenuItem2, R.string.str_menu_list2);

returnsuper.onCreateOptionsMenu(menu);

}

@Override

publicboolean onOptionsItemSelected(MenuItem item)

{

// TODO Auto-generatedmethod stub

switch (item.getItemId())

{

case (MENU_LIST1):

mString = new String[]

{

getResources().getString(R.string.str_list1),

getResources().getString(R.string.str_list2),

getResources().getString(R.string.str_list3),

getResources().getString(R.string.str_list4)

};

mla = new ArrayAdapter<String>(EX04_20.this, R.layout.main, mString);

EX04_20.this.setListAdapter(mla);

break;

case (MENU_LIST2):

mString = new String[]

{

getResources().getString(R.string.str_list5),

getResources().getString(R.string.str_list6),

getResources().getString(R.string.str_list7),

getResources().getString(R.string.str_list8)

};

mla = new ArrayAdapter<String>(EX04_20.this, R.layout.main, mString);

EX04_20.this.setListAdapter(mla);

break;

}

returnsuper.onOptionsItemSelected(item);

}

/*用于定于使用的语言*/

Resources res=getResources();

//更改语系

Configuration conf=res.getConfiguration();

conf.locale=Locale.CHINESE;

DisplayMetrics dm=res.getDisplayMetrics();

res.updateConfiguration(conf, dm);

// 如果选中的话

if (cb.isChecked()) {

// 设置EditText的内容为可见的

// 使用et.setTransformationMethod(HideReturnsTransformationMethod.getInstance())进行显示;

et.setTransformationMethod(HideReturnsTransformationMethod

.getInstance());

} else

et.setTransformationMethod(PasswordTransformationMethod

.getInstance());

{

}

例子:

private Vibrator mVibrator01;

/** Calledwhen the activity is first created. */

@Override

publicvoid onCreate(Bundle savedInstanceState)

{

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

/* 设定ToggleButton的对象 */

mVibrator01 = (Vibrator) getApplication().getSystemService(

Service.VIBRATOR_SERVICE);

final ToggleButton mtogglebutton1 = (ToggleButton)findViewById(R.id.myTogglebutton1);

final ToggleButton mtogglebutton2 = (ToggleButton)findViewById(R.id.myTogglebutton2);

final ToggleButton mtogglebutton3 = (ToggleButton)findViewById(R.id.myTogglebutton3);

/* 设定ToggleButton使用OnClickListener来启动事件 */

mtogglebutton1.setOnClickListener(new OnClickListener()

{

publicvoid onClick(View v)

{

if (mtogglebutton1.isChecked())

{

/* 设定震动的周期 */

mVibrator01.vibrate(newlong[]

{ 100, 10, 100, 1000 }, -1);

/* Toast显示震动启动 */

Toast.makeText(EX05_06.this,getString(R.string.str_ok),

Toast.LENGTH_SHORT).show();

} else

{

/* 取消震动 */mVibrator01.cancel();

/* Toast显示震动取消 */

Toast.makeText(EX05_06.this, getString(R.string.str_end),

Toast.LENGTH_SHORT).show();

}

}

});

/* 设定ToggleButton使用OnClickListener来启动事件 */

mtogglebutton2.setOnClickListener(new OnClickListener()

{

publicvoid onClick(View v)

{

if (mtogglebutton2.isChecked())

{

/* 设定震动的周期 */mVibrator01.vibrate(newlong[]

{ 100, 100, 100, 1000 }, 0);

/* Toast显示震动启动 */

Toast.makeText(EX05_06.this,getString(R.string.str_ok),

Toast.LENGTH_SHORT).show();

} else

{

/* 取消震动 */

mVibrator01.cancel();

/* Toast显示震动取消 */

Toast.makeText(EX05_06.this,getString(R.string.str_end),

Toast.LENGTH_SHORT).show();

}

}

});

mtogglebutton3.setOnClickListener(new OnClickListener()

{

publicvoid onClick(View v)

{

if (mtogglebutton3.isChecked())

{

/* 设定震动的周期 */

mVibrator01.vibrate(newlong[]

{ 1000, 50, 1000, 50, 1000 }, 0);

/* Toast显示震动启动 */

Toast.makeText(EX05_06.this,getString(R.string.str_ok),

Toast.LENGTH_SHORT).show();

} else

{

/* 取消震动 */

mVibrator01.cancel();

/* Toast显示震动取消 */

Toast.makeText(EX05_06.this,getString(R.string.str_end),

Toast.LENGTH_SHORT).show();

}

}

});

例子:

/* 声明四个UI变量与一个常数作为Activity接收回传值用 */

private TextView mTextView01;

private Button mButton01;

private EditText mEditText01;

private EditText mEditText02;

privatestaticfinalintPICK_CONTACT_SUBACTIVITY = 2;

/** Calledwhen the activity is first created. */

@Override

publicvoid onCreate(Bundle savedInstanceState)

{

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

/* 透过findViewById建构子来建构一个TextView,两个EditText,一个Button对象* */

mTextView01 = (TextView) findViewById(R.id.myTextView1);

mEditText01 = (EditText) findViewById(R.id.myEditText01);

mEditText02 = (EditText) findViewById(R.id.myEditText02);

mButton01 = (Button) findViewById(R.id.myButton1);

/* 设定onClickListener 让使用者点选Button时搜寻联系人 */

mButton01.setOnClickListener(new Button.OnClickListener()

{

@Override

publicvoid onClick(View v)

{

// TODO Auto-generated method stub

/* 建构Uri来取得联络人的资源位置 */

// Uri uri =Uri.parse("content://contacts/people/");

/* 透过Intent来取得联络人数据并回传所选的值 */

// Intent intent = new Intent(Intent.ACTION_PICK, uri);

/* 开启新的Activity并期望该Activity回传值 */

// startActivityForResult(intent, PICK_CONTACT_SUBACTIVITY);

startActivityForResult(new Intent(Intent.ACTION_PICK,

android.provider.ContactsContract.Contacts.CONTENT_URI),

PICK_CONTACT_SUBACTIVITY);

}

});

}

@Override

protectedvoid onActivityResult(int requestCode, int resultCode, Intent data)

{

// TODO Auto-generatedmethod stub

try

{

switch (requestCode)

{

casePICK_CONTACT_SUBACTIVITY:

final Uri uriRet = data.getData();

if (uriRet != null)

{

try

{

/* 必须要有android.permission.READ_CONTACTS权限 */

Cursor c = managedQuery(uriRet, null, null, null, null);

/* Cursor移到资料最前端 */

c.moveToFirst();

/* 取得联络人的姓名 */

String strName = c

.getString(c

.getColumnIndexOrThrow(ContactsContract.Contacts.DISPLAY_NAME));

/* 将姓名写入EditText01 */

mEditText01.setText(strName);

/* 取得联络人的电话 */

int contactId = c.getInt(c

.getColumnIndex(ContactsContract.Contacts._ID));

Cursor phones =getContentResolver().query(

ContactsContract.CommonDataKinds.Phone.CONTENT_URI,

null,

ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = "

+ contactId, null, null);

StringBuffer sb = new StringBuffer();

int typePhone, resType;

String numPhone;

if (phones.getCount() > 0)

{

phones.moveToFirst();

/* 2.0可以允许User设定多组电话号码,但本范例只捞一组电话号码作示范 */

typePhone = phones

.getInt(phones

.getColumnIndex(ContactsContract.CommonDataKinds.Phone.TYPE));

numPhone = phones

.getString(phones

.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));

resType = ContactsContract.CommonDataKinds.Phone

.getTypeLabelResource(typePhone);

sb.append(getString(resType) + ": " + numPhone+ "\n");

/* 将电话写入EditText02 */

mEditText02.setText(numPhone);

} else

{

sb.append("no Phone number found");

}

/* Toast是否读取到完整的电话种类与电话号码 */

Toast.makeText(this, sb.toString(),Toast.LENGTH_SHORT).show();

} catch (Exception e)

{

/* 将错误信息在TextView中显示 */

mTextView01.setText(e.toString());

e.printStackTrace();

}

}

break;

default:

break;

}

} catch (Exception e)

{

e.printStackTrace();

}

super.onActivityResult(requestCode, resultCode,data);

}

<!--取得讀取通訊錄的權限 -->

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

/* 清除背景图案 */

@Override

publicvoid clearWallpaper() throws IOException

{

// TODO Auto-generatedmethod stub

super.clearWallpaper();

}

图片例子:

protectedstatic InputStream is;

private ImageAdapter mImageAdapter01;

/** Calledwhen the activity is first created. */

@Override

publicvoid onCreate(Bundle savedInstanceState)

{

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

/*设定图片*/

Integer[] myImageIds = { R.drawable.google, R.drawable.helloking,R.drawable.chamberlain, R.drawable.king, R.drawable.with, };

mImageAdapter01 = new ImageAdapter(EX05_13.this, myImageIds);

/*设定图为Gallery的显示方式*/

Gallery g = (Gallery) findViewById(R.id.mygallery);

g.setAdapter(mImageAdapter01);

g.setOnItemClickListener(newGallery.OnItemClickListener()

{

@Override

publicvoid onItemClick(AdapterView <?> parent,View v, finalint position, long id)

{

// TODO Auto-generated method stub

new AlertDialog.Builder(EX05_13.this).setTitle(R.string.app_about)

/*设定弹出窗口的图式*/

.setIcon(mImageAdapter01.myImageIds[position])

/*设定弹出窗口的讯息*/

.setMessage(R.string.app_about_msg)

/*确认窗口*/

.setPositiveButton(R.string.str_ok, newDialogInterface.OnClickListener()

{

publicvoid onClick(DialogInterface dialoginterface, int i)

{

Resources resources =getBaseContext().getResources();

is = resources.openRawResource(mImageAdapter01.myImageIds [position]);

try

{

/*更换桌布*/

setWallpaper(is);

/*Toast来显示桌布已更换*/

Toast.makeText(EX05_13.this,getString(R.string. my_gallery_text_pre),Toast.LENGTH_SHORT).show();

}

catch (Exception e)

{

e.printStackTrace();

};

}

})

/*设定跳出窗口的返回事件*/

.setNegativeButton(R.string.str_no, newDialogInterface.OnClickListener()

{

publicvoid onClick(DialogInterface dialoginterface, int i)

{

/*Toast来显示桌布已取消*/

Toast.makeText(EX05_13.this,getString(R.string. my_gallery_text_no),Toast.LENGTH_SHORT).show(); } }) .show();

}

});

}

publicclass ImageAdapter extends BaseAdapter

{

intmGalleryItemBackground;

private Context mContext;

private Integer[] myImageIds;

public ImageAdapter(Context c,Integer[] aid)

{

mContext = c; myImageIds = aid;

TypedArray a =obtainStyledAttributes(R.styleable.Gallery);

mGalleryItemBackground = a.getResourceId( R.styleable.Gallery_android_galleryItemBackground, 0);

a.recycle();

}

@Override

publicint getCount()

{

// TODO Auto-generatedmethod stub

returnmyImageIds.length;

}

@Override

public Object getItem(int position)

{

// TODO Auto-generatedmethod stub

returnnull;

}

@Overridepubliclong getItemId(int position)

{

// TODO Auto-generatedmethod stub

return position;

}

@Override

public View getView(int position, ViewconvertView, ViewGroup parent)

{

// TODO Auto-generatedmethod stub

/*产生ImageView对象*/

ImageView i = new ImageView(mContext);

/*设定图片给imageView对象*/

i.setImageResource(myImageIds[position]);

/*重新设定图片的宽高*/

i.setScaleType(ImageView.ScaleType.FIT_XY);

/*重新设定Layout的宽高*/

i.setLayoutParams(new Gallery.LayoutParams(138,108));

/*设定Gallery背景图*/

i.setBackgroundResource(mGalleryItemBackground);

/*传回imageView对象*/

return i;

}

}

@Override

publicvoid setWallpaper(InputStream data) throws IOException

{

// TODO Auto-generatedmethod stub

super.setWallpaper(data);

}

}

wifi例子:

/* getSystemService取得WIFI_SERVICE */

mWiFiManager01 = (WifiManager) this.getSystemService(Context.WIFI_SERVICE);

/* 判断执行程序后的WiFi状态是否启动或启动中 */

if(mWiFiManager01.isWifiEnabled())

{

/* 判断WiFi状态是否已启动 */

if(mWiFiManager01.getWifiState()==WifiManager.WIFI_STATE_ENABLED)

{

/* WiFi已启动,将核取项打勾 */

mCheckBox01.setChecked(true);

/* 更改核取项文字为关闭WiFi*/

mCheckBox01.setText(R.string.str_uncheck);

}

else

{

/* WiFi未启动,将核取项勾选取消 */

mCheckBox01.setChecked(false);

/* 变更核取项文字为启动WiFi*/

mCheckBox01.setText(R.string.str_checked);

}

}

else

{

mCheckBox01.setChecked(false);

mCheckBox01.setText(R.string.str_checked);

}

/* 捕捉CheckBox的点击事件 */

mCheckBox01.setOnClickListener(new CheckBox.OnClickListener()

{

@Override

publicvoid onClick(View v)

{

// TODO Auto-generated method stub

/* 当核取项为取消核取状态 */

if(mCheckBox01.isChecked()==false)

{

/* 尝试关闭Wi-Fi服务 */

try

{

/* 判断WiFi状态是否为已启动 */

if(mWiFiManager01.isWifiEnabled() )

{

/* 关闭WiFi */

if(mWiFiManager01.setWifiEnabled(false))

{

mTextView01.setText(R.string.str_stop_wifi_done);

}

else

{

mTextView01.setText(R.string.str_stop_wifi_failed);

}

}

else

{

/* WiFi状态不为已启动状态时 */

switch(mWiFiManager01.getWifiState())

{

/* WiFi正在启动过程中,导致无法关闭... */

case WifiManager.WIFI_STATE_ENABLING:

mTextView01.setText

(

getResources().getText(R.string.str_stop_wifi_failed)+":"+

getResources().getText(R.string.str_wifi_enabling)

);

break;

/* WiFi正在关闭过程中,导致无法关闭... */

case WifiManager.WIFI_STATE_DISABLING:

mTextView01.setText

(

getResources().getText(R.string.str_stop_wifi_failed)+":"+

getResources().getText(R.string.str_wifi_disabling)

);

break;

/* WiFi已经关闭 */

case WifiManager.WIFI_STATE_DISABLED:

mTextView01.setText

(

getResources().getText(R.string.str_stop_wifi_failed)+":"+

getResources().getText(R.string.str_wifi_disabled)

);

break;

/* 无法取得或辨识WiFi状态 */

case WifiManager.WIFI_STATE_UNKNOWN:

default:

mTextView01.setText

(

getResources().getText(R.string.str_stop_wifi_failed)+":"+

getResources().getText(R.string.str_wifi_unknow)

);

break;

}

mCheckBox01.setText(R.string.str_checked);

}

}

catch (Exception e)

{

Log.i("HIPPO", e.toString());

e.printStackTrace();

}

}

elseif(mCheckBox01.isChecked()==true)

{

/* 尝试开启Wi-Fi服务 */

try

{

/* 确认WiFi服务是关闭且不在启动操作中 */

if(!mWiFiManager01.isWifiEnabled() && mWiFiManager01.getWifiState()!=WifiManager.WIFI_STATE_ENABLING )

{

if(mWiFiManager01.setWifiEnabled(true))

{

switch(mWiFiManager01.getWifiState())

{

/* WiFi正在启动启过程中,导致无法启动... */

case WifiManager.WIFI_STATE_ENABLING:

mTextView01.setText

(

getResources().getText(R.string.str_wifi_enabling)

);

break;

/* WiFi已经为启动,无法再次启动... */

case WifiManager.WIFI_STATE_ENABLED:

mTextView01.setText

(

getResources().getText(R.string.str_start_wifi_done)

);

break;

/* 其他未知的错误 */

default:

mTextView01.setText

(

getResources().getText(R.string.str_start_wifi_failed)+":"+

getResources().getText(R.string.str_wifi_unknow)

);

break;

}

}

else

{

mTextView01.setText(R.string.str_start_wifi_failed);

}

}

else

{

switch(mWiFiManager01.getWifiState())

{

/* WiFi正在启动过程中,导致无法启动... */

case WifiManager.WIFI_STATE_ENABLING:

mTextView01.setText

(

getResources().getText(R.string.str_start_wifi_failed)+":"+

getResources().getText(R.string.str_wifi_enabling)

);

break;

/* WiFi正在关闭过程中,导致无法启动... */

case WifiManager.WIFI_STATE_DISABLING:

mTextView01.setText

(

getResources().getText(R.string.str_start_wifi_failed)+":"+

getResources().getText(R.string.str_wifi_disabling)

);

break;

/* WiFi已经关闭 */

case WifiManager.WIFI_STATE_DISABLED:

mTextView01.setText

(

getResources().getText(R.string.str_start_wifi_failed)+":"+

getResources().getText(R.string.str_wifi_disabled)

);

break;

/* 无法取得或辨识WiFi状态 */

case WifiManager.WIFI_STATE_UNKNOWN:

default:

mTextView01.setText

(

getResources().getText(R.string.str_start_wifi_failed)+":"+

getResources().getText(R.string.str_wifi_unknow)

);

break;

}

}

mCheckBox01.setText(R.string.str_uncheck);

}

catch (Exception e)

{

Log.i("HIPPO", e.toString());

e.printStackTrace();

}

}

}

});

}

publicvoid mMakeTextToast(String str, boolean isLong)

{

if(isLong==true)

{

Toast.makeText(EX05_17.this, str, Toast.LENGTH_LONG).show();

}

else

{

Toast.makeText(EX05_17.this, str, Toast.LENGTH_SHORT).show();

}

}

@Override

protectedvoid onResume()

{

// TODO Auto-generatedmethod stub

/* onResume重写事件为取得开启程序当前WiFi的状态 */

try

{

switch(mWiFiManager01.getWifiState())

{

/* WiFi已经为启动状态... */

case WifiManager.WIFI_STATE_ENABLED:

mTextView01.setText

(

getResources().getText(R.string.str_wifi_enabling)

);

break;

/* WiFi正在启动过程中状态... */

case WifiManager.WIFI_STATE_ENABLING:

mTextView01.setText

(

getResources().getText(R.string.str_wifi_enabling)

);

break;

/* WiFi正在关闭过程中... */

case WifiManager.WIFI_STATE_DISABLING:

mTextView01.setText

(

getResources().getText(R.string.str_wifi_disabling)

);

break;

/* WiFi已经关闭 */

case WifiManager.WIFI_STATE_DISABLED:

mTextView01.setText

(

getResources().getText(R.string.str_wifi_disabled)

);

break;

/* 无法取得或辨识WiFi状态 */

case WifiManager.WIFI_STATE_UNKNOWN:

default:

mTextView01.setText

(

getResources().getText(R.string.str_wifi_unknow)

);

break;

}

}

catch(Exception e)

{

mTextView01.setText(e.toString());

e.getStackTrace();

}

super.onResume();

}

@Override

protectedvoid onPause()

{

// TODO Auto-generatedmethod stub

super.onPause();

}

取得正在运行的例子:

private Button mButton01;

private ListView mListView01;

private ArrayAdapter<String> aryAdapter1;

private ArrayList<String> arylistTask;

/* 类成员设定取并最?几笔的Task数量 */

privateintintGetTastCounter=30;

/* 类成员ActivityManager对象 */

private ActivityManager mActivityManager;

/** Calledwhen the activity is first created. */

@Override

publicvoid onCreate(Bundle savedInstanceState)

{

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

mButton01 = (Button)findViewById(R.id.myButton1);

mListView01 = (ListView)findViewById(R.id.myListView1);

mButton01.setOnClickListener(new Button.OnClickListener()

{

@Override

publicvoid onClick(View v)

{

// TODO Auto-generated method stub

try

{

/* ActivityManager对象守系统取得ACTIVITY_SERVICE */

mActivityManager =(ActivityManager)EX05_21.this.getSystemService(ACTIVITY_SERVICE);

arylistTask = new ArrayList<String>();

/* getRunningTasks方法取并正在运行中的程序TaskInfo */

List<ActivityManager.RunningTaskInfo> mRunningTasks = mActivityManager.getRunningTasks(intGetTastCounter);

//List<ActivityManager.RunningServiceInfo> mRunningTasks =mActivityManager.getRunningServices(intGetTastCounter);

int i = 1;

/* 以循环及baseActivity方式取得名称与ID */

for (ActivityManager.RunningTaskInfo amTask :mRunningTasks)

//for (ActivityManager.RunningServiceInfo amTask : mRunningTasks)

{

/* baseActivity.getClassName */

arylistTask.add("" + (i++) + ": "+ amTask.baseActivity.getClassName()+ "(ID=" + amTask.id +")");

//arylistTask.add("" + (i++) + ": "+ amTask.process +"(ID=" + amTask.pid +")");

}

aryAdapter1 = new ArrayAdapter<String>(EX05_21.this, R.layout.simple_list_item_1, arylistTask);

if(aryAdapter1.getCount()==0)

{

/* 当没有任何运行的操作,则提示信息 */

mMakeTextToast

(

getResources().getText(R.string.str_err_no_running_task).toString(),

//getResources().getText(R.string.str_err_no_running_service).toString(),

true

);

}

else

{

/* 发现后台运行程序,以ListView Widget条在出现 */

mListView01.setAdapter(aryAdapter1);

}

}

catch(SecurityException e)

{

/* 当无GET_TASKS权限时(SecurityException?)提示信息 */

mMakeTextToast

(

getResources().getText(R.string.str_err_permission).toString(),

true

);

}

}

});

/* User运行选择时的事件处理 */

mListView01.setOnItemSelectedListener(new ListView.OnItemSelectedListener()

{

@Override

publicvoid onItemSelected(AdapterView<?> parent,View v, int id, long arg3)

{

// TODO Auto-generated method stub

/* 由于将运行,故以id取出数组元素名称 */

mMakeTextToast(arylistTask.get(id).toString(),false);

}

@Override

publicvoid onNothingSelected(AdapterView<?> arg0)

{

// TODO Auto-generated method stub

}

});

/* User运行点击时的事件处理 */

mListView01.setOnItemClickListener(new ListView.OnItemClickListener()

{

@Override

publicvoid onItemClick(AdapterView<?> parent,View v, int id, long arg3)

{

// TODO Auto-generated method stub

/* 由于将运行?囫北阵在?放,故北id取叨阵在元素宅称 */

mMakeTextToast(arylistTask.get(id).toString(), false);

}

});

}

publicvoid mMakeTextToast(String str, boolean isLong)

{

if(isLong==true)

{

Toast.makeText(EX05_21.this, str, Toast.LENGTH_LONG).show();

}

else

{

Toast.makeText(EX05_21.this, str, Toast.LENGTH_SHORT).show();

}

}

旋转屏幕例子:

/* 方法又需要用到的Display对象 */

final Display defaultDisplay =getWindow().getWindowManager().getDefaultDisplay();

mButton01 = (Button)findViewById(R.id.myButton1);

mTextView01 = (TextView)findViewById(R.id.myTextView1);

if(getRequestedOrientation()==-1)

{

mTextView01.setText(getResources().getText(R.string.str_err_1001));

}

/* 当按下按钮旋转屏幕画面 */

mButton01.setOnClickListener(new Button.OnClickListener()

{

@Override

publicvoid onClick(View arg0)

{

/* 方法一:重写getRequestedOrientation */

/* 若无法取得screenOrientation属性 */

if(getRequestedOrientation()==-1)

{

/* 提示无法进行画面旋转叫能,帆无法??Orientation */

mTextView01.setText(getResources().getText(R.string.str_err_1001));

}

else

{

if(getRequestedOrientation()==ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE)

{

/* 若当前为横式,则变更为直式显示 */

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

}

elseif(getRequestedOrientation()==ActivityInfo.SCREEN_ORIENTATION_PORTRAIT)

{

/* 若当前为直式,则变更为横式显示 */

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

}

}

/* 方法二:判断屏幕宽高比(扩展学习) */

int h= defaultDisplay.getHeight();

int w = defaultDisplay.getWidth();

/* 否分辨率为按钮按下当下的分辨率 */

mTextView01.setText(Integer.toString(h)+"x"+Integer.toString(w));

//if(w > h)

//{

/* Landscape */

/* 重写Activity里的setRequestedOrientation()方法 */

//setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

//}

//else

//{

/* Portrait */

// setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

//}

}

});

}

@Override

publicvoid setRequestedOrientation(int requestedOrientation)

{

// TODO Auto-generatedmethod stub

/* 判断要变更的方向,以Toast提示 */

switch(requestedOrientation)

{

case (ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE):

mMakeTextToast

(

getResources().getText(R.string.str_msg1).toString(),

false

);

break;

case (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT):

mMakeTextToast

(

getResources().getText(R.string.str_msg2).toString(),

false

);

break;

}

super.setRequestedOrientation(requestedOrientation);

}

@Override

publicint getRequestedOrientation()

{

// TODO Auto-generatedmethod stub

/* 此重写getRequestedOrientation方法,可取得当前屏幕的方向 */

returnsuper.getRequestedOrientation();

}

publicvoid mMakeTextToast(String str, boolean isLong)

{

if(isLong==true)

{

Toast.makeText(EX05_22.this, str, Toast.LENGTH_LONG).show();

}

else

{

Toast.makeText(EX05_22.this, str, Toast.LENGTH_SHORT).show();

}

}

例子:

@Override

publicvoid onCreate(Bundle savedInstanceState)

{

super.onCreate(savedInstanceState);

/* 设定ContentView为自定义的MyView */

MyView myView = new MyView(this);

setContentView(myView);

}

/* 自定义继承ViewMyView */

privateclass MyView extends View

{

public MyView(Context context)

{

super(context);

}

/* 覆写onDraw() */

@Override

protectedvoid onDraw(Canvas canvas)

{

super.onDraw(canvas);

/* 设定背景为白色 */

canvas.drawColor(Color.WHITE);

Paint paint = new Paint();

/* 去锯齿 */

paint.setAntiAlias(true);

/* 设定paint的颜色 */

paint.setColor(Color.RED);

/* 设定paintstyleSTROKE:空心的 */

paint.setStyle(Paint.Style.STROKE);

/* 设定paint的外框宽度 */

paint.setStrokeWidth(3);

/* 画一个空心圆形 */

canvas.drawCircle(40, 40, 30, paint);

/* 画一个空心正方形 */

canvas.drawRect(10, 90, 70, 150, paint);

/* 画一个空心长方形 */

canvas.drawRect(10, 170, 70, 200, paint);

/* 画一个空心椭圆形 */

RectF re = new RectF(10, 220, 70, 250);

canvas.drawOval(re, paint);

/* 画一个空心三角形 */

Path path = new Path();

path.moveTo(10, 330);

path.lineTo(70, 330);

path.lineTo(40, 270);

path.close();

canvas.drawPath(path, paint);

/* 画一个空心梯形 */

Path path1 = new Path();

path1.moveTo(10, 410);

path1.lineTo(70, 410);

path1.lineTo(55, 350);

path1.lineTo(25, 350);

path1.close();

canvas.drawPath(path1, paint);

/* 设定paintstyleFILL:实心 */

paint.setStyle(Paint.Style.FILL);

/* 设定paint的颜色 */

paint.setColor(Color.BLUE);

/* 画一个实心圆 */

canvas.drawCircle(120, 40, 30, paint);

/* 画一个实心正方形 */

canvas.drawRect(90, 90, 150, 150, paint);

/* 画一个实心长方形 */

canvas.drawRect(90, 170, 150, 200,paint);

/* 画一个实心椭圆形 */

RectF re2 = new RectF(90, 220, 150, 250);

canvas.drawOval(re2, paint); /* 画一个实心三角形 */

Path path2 = new Path();

path2.moveTo(90, 330);

path2.lineTo(150, 330);

path2.lineTo(120, 270);

path2.close();

canvas.drawPath(path2, paint); /* 画一个实心梯形 */

Path path3 = new Path();

path3.moveTo(90, 410);

path3.lineTo(150, 410);

path3.lineTo(135, 350);

path3.lineTo(105, 350);

path3.close();

canvas.drawPath(path3, paint); /* 设定渐层色 */

Shader mShader = new LinearGradient(0,0, 100, 100, newint[]

{ Color.RED, Color.GREEN, Color.BLUE, Color.YELLOW }, null,

Shader.TileMode.REPEAT);

paint.setShader(mShader); /* 画一个渐层色的圆形 */

canvas.drawCircle(200, 40, 30, paint); /* 画一个渐层色的正方形 */

canvas.drawRect(170, 90, 230, 150,paint); /* 画一个渐层色的长方形 */

canvas.drawRect(170, 170, 230, 200,paint); /* 画一个渐层色的椭圆形 */

RectF re3 = new RectF(170, 220, 230, 250);

canvas.drawOval(re3, paint); /* 画一个渐层色的三角形 */

Path path4 = new Path();

path4.moveTo(170, 330);

path4.lineTo(230, 330);

path4.lineTo(200, 270);

path4.close();

canvas.drawPath(path4, paint); /* 画一个渐层色的梯形 */

Path path5 = new Path();

path5.moveTo(170, 410);

path5.lineTo(230, 410);

path5.lineTo(215, 350);

path5.lineTo(185, 350);

path5.close();

canvas.drawPath(path5, paint); /* 写字 */

paint.setTextSize(24);

canvas.drawText(getResources().getString(R.string.str_text1),

240, 50, paint);

canvas.drawText(getResources().getString(R.string.str_text2),

240, 120, paint);

canvas.drawText(getResources().getString(R.string.str_text3),

240, 190, paint);

canvas.drawText(getResources().getString(R.string.str_text4),

240, 250, paint);

canvas.drawText(getResources().getString(R.string.str_text5),

240, 320, paint);

canvas.drawText(getResources().getString(R.string.str_text6),

240, 390, paint);

}

}

点击屏幕图片跟随例子:

/* 宣告ImageView变量 */

private ImageView mImageView01; /* 宣告相关变量作为储存图片宽高,位置使用 */

privateintintWidth, intHeight, intDefaultX, intDefaultY;

privatefloatmX, mY; /* 宣告储存屏幕的分辨率变量 */

privateintintScreenX, intScreenY;

/** Calledwhen the activity is first created. */

@Override

publicvoid onCreate(Bundle savedInstanceState)

{

super.onCreate(savedInstanceState);

setContentView(R.layout.main); /* 取得屏幕对象 */

DisplayMetrics dm = new DisplayMetrics();

getWindowManager().getDefaultDisplay().getMetrics(dm); /* 取得屏幕解析像素 */

intScreenX = dm.widthPixels;

intScreenY = dm.heightPixels; /* 设定图片的宽高 */

intWidth = 100;

intHeight = 100; /* 透过findViewById建构子建立ImageView对象 */

mImageView01 = (ImageView) findViewById(R.id.myImageView1); /* 将图片从Drawable指派给ImageView来呈现 */

mImageView01.setImageResource(R.drawable.baby); /* 初始化按钮位置置中 */

RestoreButton(); /* 当按下ImageView,还原初始位置 */

mImageView01.setOnClickListener(new Button.OnClickListener()

{

@Override

publicvoid onClick(View v)

{

RestoreButton();

}

});

} /* 覆写触控事件 */

@Override

publicboolean onTouchEvent(MotionEvent event)

{ /* 取得手指触控屏幕的位置 */

float x = event.getX();

float y = event.getY();

try

{ /* 触控事件的处理 */

switch (event.getAction())

{ /* 点选屏幕 */

case MotionEvent.ACTION_DOWN:

picMove(x, y);

break; /* 移动位置 */

case MotionEvent.ACTION_MOVE:

picMove(x, y);

break; /* 离开屏幕 */

case MotionEvent.ACTION_UP:

picMove(x, y);

break;

}

} catch (Exception e)

{

e.printStackTrace();

}

returntrue;

} /* 移动图片的方法 */

privatevoid picMove(float x, float y)

{ /* 默认微调图片与指针的相对位置 */

mX = x - (intWidth / 2);

mY = y - (intHeight / 2); /* 防图片超过屏幕的相关处理 *//* 防止屏幕向右超过屏幕 */

if ((mX + intWidth) > intScreenX)

{

mX = intScreenX - intWidth;

} /* 防止屏幕向左超过屏幕 */elseif (mX < 0)

{

mX = 0;

} /* 防止屏幕向下超过屏幕 */elseif ((mY + intHeight) > intScreenY)

{

mY = intScreenY - intHeight;

} /* 防止屏幕向上超过屏幕 */elseif (mY < 0)

{

mY = 0;

} /* 透过log 来检视图片位置 */

Log.i("jay", Float.toString(mX) + "," + Float.toString(mY)); /*

* setLayoutParams方法,

* 重新安排Layout上的位置

*/

mImageView01.setLayoutParams(new AbsoluteLayout.LayoutParams(intWidth,

intHeight, (int) mX, (int) mY));

} /* 还原ImageView位置的事件处理 */

publicvoid RestoreButton()

{

intDefaultX = ((intScreenX - intWidth) / 2);

intDefaultY = ((intScreenY - intHeight) / 2); /* Toast还原位置坐标 */

mMakeTextToast("(" + Integer.toString(intDefaultX) + ","

+ Integer.toString(intDefaultY) + ")", true); /*

* setLayoutParams方法,重新安排Layout上的位置

*/

mImageView01.setLayoutParams(new AbsoluteLayout.LayoutParams(intWidth,

intHeight, intDefaultX, intDefaultY));

} /* 自定义一发出讯息的方法 */

publicvoid mMakeTextToast(String str, boolean isLong)

{

if (isLong == true)

{

Toast.makeText(EX07_04.this, str, Toast.LENGTH_LONG).show();

} else

{

Toast.makeText(EX07_04.this, str, Toast.LENGTH_SHORT).show();

}

}

播放音乐例子:

/*声明一个 ImageButton,TextView,MediaPlayer变量*/

private ImageButton mButton01, mButton02, mButton03;

private TextView mTextView01;

private MediaPlayer mMediaPlayer01;

/*声明一个Flag做为确认音乐是否暂停的变量并预设为false*/

privatebooleanbIsPaused = false;

/** Calledwhen the activity is first created. */

@Override

publicvoid onCreate(Bundle savedInstanceState)

{

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

/*透过findViewById建构巳建立TextViewImageView对象*/

mButton01 =(ImageButton) findViewById(R.id.myButton1);

mButton02 =(ImageButton) findViewById(R.id.myButton2);

mButton03 =(ImageButton) findViewById(R.id.myButton3);

mTextView01 = (TextView) findViewById(R.id.myTextView1);

/*onCreate时建立MediaPlayer对象 */

mMediaPlayer01 = new MediaPlayer();

/* 将音乐以Import的方式保存?res/raw/always.mp3 */

mMediaPlayer01 = MediaPlayer.create(EX07_09.this, R.raw.big);

/* 执行播放音乐的按钮 */

mButton01.setOnClickListener(new ImageButton.OnClickListener()

{

@Override

/*重写OnClick事件*/

publicvoid onClick(View v)

{

// TODO Auto-generated method stub

try

{

if (mMediaPlayer01 != null)

{

mMediaPlayer01.stop();

}

/*?MediaPlayer取得播放资源与stop()之后

* 要准备Playback的状态前几定要使用MediaPlayer.prepare()*/

mMediaPlayer01.prepare();

/*开始或反复播放*/

mMediaPlayer01.start();

/*改变TextView为开始播放状态*/

mTextView01.setText(R.string.str_start);

}

catch (Exception e)

{

// TODO Auto-generated catch block

mTextView01.setText(e.toString());

e.printStackTrace();

}

}

});

/* 停止播放 */

mButton02.setOnClickListener(new ImageButton.OnClickListener()

{

@Override

publicvoid onClick(View arg0)

{

// TODO Auto-generated method stub

try

{

if (mMediaPlayer01 != null)

{

/*停止播放*/

mMediaPlayer01.stop();

/*改变TextView为停止播放状态*/

mTextView01.setText(R.string.str_close);

}

}

catch (Exception e)

{

// TODO Auto-generated catch block

mTextView01.setText(e.toString());

e.printStackTrace();

}

}

});

/* 暂停播放 */

mButton03.setOnClickListener(new ImageButton.OnClickListener()

{

@Override

publicvoid onClick(View arg0)

{

// TODO Auto-generated method stub

try

{

if (mMediaPlayer01 != null)

{

/*?为暂停状态=?*/

if(bIsPaused==false)

{

/*暂停播放*/

mMediaPlayer01.pause();

/*设定Flagtreu表示 Player状态为暂停*/

bIsPaused = true;

/*改变TextView为暂停播放*/

mTextView01.setText(R.string.str_pause);

}

/*?为暂停状态=*/

elseif(bIsPaused==true)

{

/*并复播叨状态*/

mMediaPlayer01.start();

/*设定Flagfalse表示 Player状态为非暂停状态*/

bIsPaused = false;

/*改变TextView为开始播放*/

mTextView01.setText(R.string.str_start);

}

}

}

catch (Exception e)

{

// TODO Auto-generated catch block

mTextView01.setText(e.toString());

e.printStackTrace();

}

}

});

/* MediaPlayer.OnCompletionLister会执行的Listener */

mMediaPlayer01.setOnCompletionListener(new MediaPlayer.OnCompletionListener()

{

//@Override

/*重写文件播放完毕事件*/

publicvoid onCompletion(MediaPlayer arg0)

{

try

{

/*解除资源与MediaPlayer的指派关系

* 资源*/

mMediaPlayer01.release();

/*改变TextView为播放结束*/

mTextView01.setText(R.string.str_OnCompletionListener);

}

catch (Exception e)

{

mTextView01.setText(e.toString());

e.printStackTrace();

}

}

});

/* MediaPlayer.OnErrorListener会执行的Listener */

mMediaPlayer01.setOnErrorListener(new MediaPlayer.OnErrorListener()

{

@Override

/*重写错误处理事件*/

publicboolean onError(MediaPlayer arg0, int arg1, int arg2)

{

// TODO Auto-generated method stub

try

{

/*发生错误时夕解除资源与MediaPlayer的指派*/

mMediaPlayer01.release();

mTextView01.setText(R.string.str_OnErrorListener);

}

catch (Exception e)

{

mTextView01.setText(e.toString());

e.printStackTrace();

}

returnfalse;

}

});

}

@Override

/*重写加程序暂停状态事件*/

protectedvoid onPause()

{

// TODO Auto-generatedmethod stub

try

{

/*圳加程序暂停时解除资源与MediaPlayer的指派关系*/

mMediaPlayer01.release();

}

catch (Exception e)

{

mTextView01.setText(e.toString());

e.printStackTrace();

}

super.onPause();

}

获取网页:

publicclass HtmlRequest {

/**

* @param args

* @throws Exception

*/

publicstaticvoid main(String[] args) throws Exception {

//URL对象专门用于获取网络信息的一个对象

URL url=new URL("http://www.sohu.com/");

//打开连接

HttpURLConnection con= (HttpURLConnection)url.openConnection();

//HTTP有两种请求方式,一种是get,一种是post

con.setRequestMethod("GET");

//设置链接超时,设置为5

con.setConnectTimeout(5000);

//通过输入流获取HTML代码

InputStream is= con.getInputStream();

//得到HTML(文字)的二进制数据

byte[] img=readInputStream(is);

//将二进制的文字转换为字符串

String html=new String(img);

System.out.println(html);

}

//用于读取数据的方法

publicstaticbyte[] readInputStream(InputStream is) throws IOException

{

//定义一个输出流

ByteArrayOutputStream out=new ByteArrayOutputStream();

//定义一个缓冲区

byte [] buff=newbyte[1024];

int len=0;

while((len=is.read(buff))!=-1)

{

out.write(buff,0, len);

}

//将输入流的数据返回出去

return out.toByteArray();

}

}

你可能感兴趣的:(android)