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”);
//当点击了按钮后,会出发前一个Activity的onPause方法
onPause()
//当获得用户焦点的时候调用的方法,如点击按钮等
onResume()
//当这个Activity的界面可以看到的时候调用onstart方法
onStart()
//当启动完了另一个Activity后,就调用这个Activity的onstop方法
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);
// 使用imageView的startAnimation方法执行动画
image.startAnimation(as);
publicstaticvoidmain(String[]args){
Thread.currentThread().interrupt();
//下面的判断会打印出来这样的语句Interrupt:false
//这样的结果是不是很让人费解呢???
//分析其原因为:
//因为在上面的一句代码可以中断线程,所以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();这个方法得到的结果:Interrupt:true
//因为它判断完后就不会清除线程的中断状态,只是返回一个线程状态的结果
}
/**
* 直接打电话的方法
*/
publicvoid call() {
String data = "tel:" + editText.getText();// 电话号码参数字符串
Uri uri = Uri.parse(data);// 将字符串转化为Uri实例
Intentintent = new Intent();// 实例化Intent
intent.setAction(Intent.ACTION_CALL);// 设置Intent的Action属性
intent.setData(uri);// 设置Intent的Data属性
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);// 设置Intent的Action属性
intent.setData(uri);// 设置Intent的Data属性
startActivity(intent);// 启动Activity
}
this.setTitle("Window Icon"); //设置标题栏上的文字
Window window=this.getWindow(); //获取当前Activity的Window
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文件里面的drawaable的white值
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对象assign给intent */
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);
Activity02.this.setResult(RESULT_OK, intent);
protectedvoid onActivityResult(intrequestCode, int resultCode, Intent data) {
/* 取得来自Activity2的数据,显示到TextView中 */
String value = b.getString("key");
Button t = (Button)findViewById(R.id.button1);
ContentResolver cr =getContentResolver();
Cursor cursor =cr.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
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");
publicboolean onKeyDown(int keyCode,KeyEvent event)
case KeyEvent.KEYCODE_DPAD_CENTER:
case KeyEvent.KEYCODE_DPAD_UP:
case KeyEvent.KEYCODE_DPAD_DOWN:
case KeyEvent.KEYCODE_DPAD_LEFT:
case KeyEvent.KEYCODE_DPAD_RIGHT:
returnsuper.onKeyDown(keyCode, event);
publicboolean onKeyUp(int keyCode,KeyEvent event)
case KeyEvent.KEYCODE_DPAD_CENTER:
case KeyEvent.KEYCODE_DPAD_UP:
case KeyEvent.KEYCODE_DPAD_DOWN:
case KeyEvent.KEYCODE_DPAD_LEFT:
case KeyEvent.KEYCODE_DPAD_RIGHT:
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)
DisplayToast("触笔点击坐标:("+Integer.toString(x)+","+Integer.toString(y)+")");
returnsuper.onTouchEvent(event);
publicboolean onKeyDown(int keyCode,KeyEvent event)
KeyEvent key = newKeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_BACK);
//这里传入的参数就是我们自己构建的KeyEvent对象key
returnsuper.onKeyDown(key.getKeyCode(), key);
m_LinearLayout = newLinearLayout(this);
m_LinearLayout.setOrientation(LinearLayout.VERTICAL);
m_LinearLayout.setBackgroundColor(android.graphics.Color.BLACK);
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_ListView到m_LinearLayout布局 */
m_LinearLayout.addView(m_ListView, param);
setContentView(m_LinearLayout);
Cursor cur = getContentResolver().query(
ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
//ListAdapter是ListView和后台数据的桥梁
ListAdapter adapter = new SimpleCursorAdapter(this,
android.R.layout.simple_list_item_2,
new String[] {PhoneLookup.DISPLAY_NAME, PhoneLookup.NUMBER },
newint[] { android.R.id.text1,android.R.id.text2 });
m_ListView.setAdapter(adapter);
/* 为m_ListView视图添加setOnItemSelectedListener监听 */
.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
publicvoid onItemSelected(AdapterView<?> arg0, View arg1,
+Long.toString(arg0.getSelectedItemId()) + "项");
publicvoid onNothingSelected(AdapterView<?> arg0) {
/* 为m_ListView视图添加setOnItemClickListener监听 */
.setOnItemClickListener(new AdapterView.OnItemClickListener() {
publicvoid onItemClick(AdapterView<?> arg0, View arg1,
DisplayToast("选中了第" + Integer.toString(arg2 + 1) + "项");
Toast toast =Toast.makeText(this, str, Toast.LENGTH_LONG);
toast.setGravity(Gravity.TOP, 0, 220);
privatestaticfinalString[] m_Countries = { "O型", "A型", "B型", "AB型", "其他" };
adapter = newArrayAdapter<String>(this, android.R.layout.simple_spinner_item, m_Countries);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
m_Spinner.setAdapter(adapter);
m_Spinner.setOnItemSelectedListener(new Spinner.OnItemSelectedListener() {
publicvoid onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3)
m_TextView.setText("你的血型是:" + m_Countries[arg2]);
arg0.setVisibility(View.VISIBLE);
publicvoid onNothingSelected(AdapterView<?> arg0)
// TODO Auto-generated method stub
ArrayAdapter<String> adapter = newArrayAdapter<String>(this,
android.R.layout.simple_dropdown_item_1line, autoString);
//将adapter添加到AutoCompleteTextView中
m_AutoCompleteTextView.setAdapter(adapter);
//将adapter添加到AutoCompleteTextView中
mm_AutoCompleteTextView.setAdapter(adapter);
mm_AutoCompleteTextView.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());
Gallery g = (Gallery) findViewById(R.id.Gallery01);
g.setAdapter(new ImageAdapter(this));
g.setBackgroundResource(R.drawable.bg0);
g.setOnItemClickListener(new OnItemClickListener() {
publicvoid onItemClick(AdapterView<?> parent, View v, int position, long id)
Toast.makeText(Activity01.this,"你选择了"+(position+1)+" 号图片",
public ImageAdapter(Context c)
public Object getItem(int position)
publiclong getItemId(int position)
public View getView(int position,View convertView, ViewGroup parent)
ImageView imageview = new ImageView(mContext);
imageview.setImageResource(mImageIds[position]);
imageview.setLayoutParams(new Gallery.LayoutParams(120, 120));
imageview.setScaleType(ImageView.ScaleType.FIT_CENTER);
NotificationManager m_NotificationManager;
PendingIntent m_PendingIntent;
m_NotificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
m_Intent = newIntent(Activity01.this, Activity02.class);
m_PendingIntent = PendingIntent.getActivity(Activity01.this, 0, m_Intent, 0);
m_Notification = newNotification();
m_Button1.setOnClickListener(new Button.OnClickListener() {
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() {
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() {
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() {
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);
m_pDialog = new ProgressDialog(Activity01.this);
m_pDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
m_pDialog.setMessage("这是一个圆形进度条对话框");
m_pDialog.setIcon(R.drawable.img1);
m_pDialog.setIndeterminate(false);
// 设置ProgressDialog 是否可以按退回按键取消
m_pDialog.setCancelable(true);
m_pDialog.setButton("确定", new DialogInterface.OnClickListener() {
publicvoid onClick(DialogInterface dialog, int i)
m_pDialog = new ProgressDialog(Activity01.this);
m_pDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
m_pDialog.setMessage("这是一个长形对话框进度条");
m_pDialog.setIcon(R.drawable.img2);
m_pDialog.setIndeterminate(false);
// 设置ProgressDialog 是否可以按退回按键取消
m_pDialog.setCancelable(true);
m_pDialog.setProgress(m_count++);
mTabHost.addTab(mTabHost.newTabSpec("tab_test1")
.setIndicator("TAB 1",getResources().getDrawable(R.drawable.img1))
mTabHost.addTab(mTabHost.newTabSpec("tab_test2")
.setIndicator("TAB 2",getResources().getDrawable(R.drawable.img2))
mTabHost.addTab(mTabHost.newTabSpec("tab_test3")
.setIndicator("TAB 3",getResources().getDrawable(R.drawable.img3))
mTabHost.setBackgroundColor(Color.argb(150, 22, 70, 150));
//mTabHost.setBackgroundResource(R.drawable.bg0);
//标签切换事件处理,setOnTabChangedListener
mTabHost.setOnTabChangedListener(newOnTabChangeListener()
// TODO Auto-generated method stub
publicvoid onTabChanged(String tabId)
Dialogdialog = new AlertDialog.Builder(Activity01.this)
.setMessage("当前选中:"+tabId+"标签")
new DialogInterface.OnClickListener()
publicvoid onClick(DialogInterface dialog, int whichButton)
DisplayMetrics dm=new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
displayHeight=dm.heightPixels-80;
bmp=BitmapFactory.decodeResource(getResources(),R.drawable.ex04_23);
int bmpHeight=bmp.getHeight();
scaleWidth=(float) (scaleWidth*scale);
scaleHeight=(float) (scaleHeight*scale);
matrix.postScale(scaleWidth, scaleHeight);
Bitmap resizeBmp = Bitmap.createBitmap(bmp,0,0,bmpWidth,bmpHeight,matrix,true);
/* 如果是第一次按,就移除原来设定的ImageView */
layout1.removeView(mImageView);
/* 如果不是第一次按,就移除上次放大缩小所生成的ImageView*/
layout1.removeView((ImageView)findViewById(id));
/* 产生新的ImageView,放入reSize的Bitmap对象,再放入Layout中 */
ImageView imageView = new ImageView(EX04_23.this);
imageView.setImageBitmap(resizeBmp);
/* 因为图片放到最大时放大按钮会disable,所以在缩小时把他重设为enable */
int bmpHeight=bmp.getHeight();
scaleWidth=(float)(scaleWidth*scale);
scaleHeight=(float)(scaleHeight*scale);
matrix.postScale(scaleWidth, scaleHeight);
Bitmap resizeBmp = Bitmap.createBitmap(bmp,0,0,bmpWidth,bmpHeight,matrix,true);
/* 如果是第一次按,就移除原来设定的ImageView */
layout1.removeView(mImageView);
/* 如果不是第一次按,就移除上次放大缩小所生成的ImageView*/
layout1.removeView((ImageView)findViewById(id));
/* 产生新的ImageView,放入reSize的Bitmap对象,再放入Layout中 */
ImageView imageView = new ImageView(EX04_23.this);
imageView.setImageBitmap(resizeBmp);
/* 如果再放大会超过屏幕大小,就把Button disable */
if(scaleWidth*scale*bmpWidth>displayWidth||scaleHeight*scale*bmpHeight>displayHeight)
publicboolean onKeyDown(int keyCode,KeyEvent event)
if (keyCode ==KeyEvent.KEYCODE_BACK)
Uri uri = Uri.parse("mailto:fengsheng.studio@hotmail.com");
Intent it = new Intent(Intent.ACTION_SENDTO, uri);
it .putExtra(android.content.Intent.EXTRA_SUBJECT, "数据备份");
it .putExtra(android.content.Intent.EXTRA_TEXT, "本次计数:"+miCount);
returnsuper.onKeyDown(keyCode, event);
TextView tv = new TextView(this);
URL uri = new URL("http://192.168.1.110:8080/android.txt");
URLConnection ucon =uri.openConnection();
InputStream is =ucon.getInputStream();
BufferedInputStream bis = new BufferedInputStream(is);
ByteArrayBuffer baf = new ByteArrayBuffer(100);
while ((current =bis.read()) != -1)
myString = new String(baf.toByteArray());
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";
LinearLayout m_LinearLayout = null;
/** Called when the activity isfirst created. */
public void onCreate(BundlesavedInstanceState)
super.onCreate(savedInstanceState);
m_LinearLayout = new LinearLayout(this);
m_LinearLayout.setOrientation(LinearLayout.VERTICAL);
m_LinearLayout.setBackgroundColor(android.graphics.Color.BLACK);
m_ListView = newListView(this);
m_ListView.setBackgroundColor(Color.BLACK);
/* 添加m_ListView到m_LinearLayout布局 */
m_LinearLayout.addView(m_ListView,param);
setContentView(m_LinearLayout);
mSQLiteDatabase =this.openOrCreateDatabase(DATABASE_NAME, MODE_PRIVATE, null);
/* 在数据库mSQLiteDatabase中创建一个表 */
mSQLiteDatabase.execSQL(CREATE_TABLE);
public boolean onKeyUp(intkeyCode, KeyEvent event)
caseKeyEvent.KEYCODE_DPAD_LEFT:
caseKeyEvent.KEYCODE_DPAD_RIGHT:
this.deleteDatabase(DATABASE_NAME);
mSQLiteDatabase.execSQL("DROPTABLE " + TABLE_NAME);
ContentValues cv = new ContentValues();
cv.put(TABLE_DATA, "修改后的数据" + miCount);
mSQLiteDatabase.update(TABLE_NAME,cv, TABLE_NUM + "=" + Integer.toString(miCount - 1), null);
ContentValues cv = newContentValues();
cv.put(TABLE_DATA, "测试数据库数据" + miCount);
mSQLiteDatabase.insert(TABLE_NAME,null, cv);
mSQLiteDatabase.execSQL("DELETEFROM " + TABLE_NAME + " WHERE _id=" +Integer.toString(miCount));
if (cur != null &&cur.getCount() >= 0)
// ListAdapter是ListView和后台数据的桥梁
ListAdapter adapter = newSimpleCursorAdapter(this,
android.R.layout.simple_list_item_2,
// 从数据库的TABLE_NUM和TABLE_DATA两列中取数据
new String[] {TABLE_NUM, TABLE_DATA },
new int[] {android.R.id.text1, android.R.id.text2 });
m_ListView.setAdapter(adapter);
public boolean onKeyDown(intkeyCode, KeyEvent event)
if (keyCode ==KeyEvent.KEYCODE_BACK)
returnsuper.onKeyDown(keyCode, event);
String strInput = mEditText1.getText().toString();
if (isPhoneNumberValid(strInput) == true) {
/* 建构一个新的Intent并执行action.CALL的常数与透过Uri将字符串带入 */
Intent myIntentDial = new Intent(
"android.intent.action.CALL", Uri.parse("tel:"
/* 在startActivity()方法中带入自定义的Intent对象以执行拨打电话的工作 */
Toast.makeText(EX05_02.this, "输入的电话格式不符",
/* 检查字符串是否为电话号码的方法,并回传true or false的判断值 */
publicstaticboolean isPhoneNumberValid(String phoneNumber) {
* 可接受的电话格式有: * ^\\(? : 可以使用 "(" 作为开头 * (\\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.compile(expression);
/* 将Pattern 以参数传入Matcher作Regularexpression */
Matcher matcher = pattern.matcher(inputStr);
Pattern pattern2 = Pattern.compile(expression2);
/* 将Pattern2 以参数传入Matcher2作Regularexpression */
Matcher matcher2 = pattern2.matcher(inputStr);
if (matcher.matches() || matcher2.matches()) {
String strDestAddress = mEditText1.getText().toString();
String strMessage = mEditText2.getText().toString();
/*建构一取得default instance的 SmsManager对象 */
SmsManager smsManager = SmsManager.getDefault();
// TODO Auto-generatedmethod stub
if(isPhoneNumberValid(strDestAddress)==true && iswithin70(strMessage)==true)
* 先建构一PendingIntent对象并使用getBroadcast()方法进行Broadcast *
* 将PendingIntent,电话,简讯文字等参数传入sendTextMessage()方法发送简讯*/
PendingIntent mPI = PendingIntent.getBroadcast(EX05_03.this, 0, new Intent(), 0);
smsManager.sendTextMessage(strDestAddress, null, strMessage, mPI, null);
Toast.makeText(EX05_03.this, "送出成功!!" , Toast.LENGTH_SHORT).show();
/*电话格式与简讯文字不符合条件时,使用Toast告知用户检查*/
if (isPhoneNumberValid(strDestAddress)==false)
if(iswithin70(strMessage)==false)
Toast.makeText(EX05_03.this, "电话号码格式错误+短信内容超过70字,请检查!!", Toast.LENGTH_SHORT).show();
Toast.makeText(EX05_03.this, "电话号码格式错误,请检查!!" , Toast.LENGTH_SHORT).show();
elseif (iswithin70(strMessage)==false)
Toast.makeText(EX05_03.this, "短信内容超过70字,请删除部分内容!!", Toast.LENGTH_SHORT).show();
/*检查字符串是否为电话号码的方法,并回传true or false的判断值*/
publicstaticboolean isPhoneNumberValid(String phoneNumber)
/* 可接受的电话格式有: * ^\\(? : 可以使用 "(" 作为开头 * (\\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{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 以参数传入Matcher作Regularexpression*/
Matcher matcher =pattern.matcher(inputStr);
/*建立Pattern2*/ Pattern pattern2 =Pattern.compile(expression2);
/*将Pattern2 以参数传入Matcher2作Regularexpression*/
Matcher matcher2=pattern2.matcher(inputStr);
if(matcher.matches()||matcher2.matches())
publicstaticboolean iswithin70(String text)
publicboolean onKey(View v, int keyCode, KeyEventevent)
// TODO Auto-generatedmethod stub
/*若使用者键入为正规email文字,则enable 按钮反之则disable 按钮*/
if(isEmail(mEditText01.getText().toString()))
/*设定onClickListener 让使用者点选Button时送出email*/
mButton01.setOnClickListener(new Button.OnClickListener()
// TODO Auto-generatedmethod stub
new Intent(android.content.Intent.ACTION_SEND);
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.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);
startActivity(Intent.createChooser(mEmailIntent,getResources().getString(R.string.str_message)));
/*确认字符串是否为email格式并回传true or false*/
publicstaticboolean isEmail(String strEmail)
Pattern p = Pattern.compile(strPattern);
Matcher m = p.matcher(strEmail);
// 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.setText(R.string.app_url);
Linkify.addLinks(mTextView,Linkify.WEB_URLS| Linkify.EMAIL_ADDRESSES|Linkify.PHONE_NUMBERS);
Toast toast = Toast.makeText(EX05_07.this, mTextView.getText(), Toast.LENGTH_LONG);
View textView = toast.getView();lay.setOrientation(LinearLayout.HORIZONTAL);
mView01.setImageResource(R.drawable.icon);
/*在Toast里显示图片*/lay.addView(mView01);
/*在Toast里显示文字*/lay.addView(textView);
private NotificationManager myNotiManager;
private ArrayAdapter<String> myAdapter;
privatestaticfinal String[] status =
{ "在线","离开","忙碌中","马上回来","脱机" };
protectedvoid onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
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()
publicvoid onItemSelected(AdapterView<?>arg0,View arg1,
/* 依照选择的item来判断要发哪一个notification */
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,"马上回来");
setNotiType(R.drawable.offine,"脱机");
publicvoid onNothingSelected(AdapterView<?> arg0)
privatevoid setNotiType(int iconId, String text)
/* 建立新的Intent,作为点选Notification留言条时,
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,
Notification myNoti=new Notification();
/* 设定notification发生时同时发出预设声音 */
myNoti.defaults=Notification.DEFAULT_SOUND;
myNoti.setLatestEventInfo(EX05_08.this,"MSN登入状态",text,appIntent);
myNotiManager.notify(0,myNoti);
/* 以getSystemService取得WIFI_SERVICE */
mWiFiManager01 = (WifiManager) this.getSystemService(Context.WIFI_SERVICE);
if(mWiFiManager01.isWifiEnabled())
if(mWiFiManager01.getWifiState()==WifiManager.WIFI_STATE_ENABLED)
mCheckBox01.setText(R.string.str_uncheck);
mCheckBox01.setChecked(false);
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<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");
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");
List<Map<String, String>> child2s = newArrayList<Map<String, String>>();
Map<String, String> child2Data = new HashMap<String,String>();
child2Data.put("child", "child2");
List<List<Map<String, String>>> childs = newArrayList<List<Map<String, String>>>();
* 4.指定一级条目数据的keygroup1.put("group", "group1");
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 });
//设置ImageButton的背景图片,方法原型为setImageDrawable(Drawable draw)
//getResources():返回当前应用程序包下的所有资源
((ImageButton)v).setImageDrawable(getResources().getDrawable(R.drawable.pinkrose));
setTitle(" "+keyCode); //将当前按键的keyCode显示到标题栏中,方便测试观察
private String jsonData="[{\"name\":\"jack\",\"age\":\"20\"},{\"name\":\"rose\",\"age\":\"60\"}]";
publicvoid parseJson(String jsonData) throws Exception
//如果需要解析Json数据,首先要生成一个JsonReader对象
JsonReader jr=new JsonReader(newStringReader(jsonData));
System.out.println("name---->"+jr.nextString());
System.out.println("age---->"+jr.nextInt());
liearLayout = (LinearLayout) this.findViewById(R.id.layout);
//获取main.xml中id为layout的liearLayout对象
TextView txtFont = new TextView(this);//声明一个TextView对象
ViewGroup.LayoutParamslayoutParams = new ViewGroup.LayoutParams(//声明ViewGroup.LayoutParams对象
ViewGroup.LayoutParams.FILL_PARENT,
ViewGroup.LayoutParams.WRAP_CONTENT);
txtFont.setLayoutParams(layoutParams);
//将txtFont以layoutParams对象指定宽度和高度布局
txtFont.setText("通过代码实现布局示例1");
txtFont.setTextColor(Color.BLACK);
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对象
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(
bookPicParams.setMargins(25, 0, 0, 5);// 设置边距,方法原型void setMargins (int
// left, int top, int right, int
bookPic.setLayoutParams(bookPicParams);
bookPic.setBackgroundResource(R.drawable.guilin);// 设置ImageView的背景图
liearLayoutMain.addView(bookName); // 将bookName添加到liearLayoutMain布局上
liearLayoutMain.addView(bookPic);// 将bookPic添加到liearLayoutMain布局上
liearLayoutMain.addView(bookDesc);// 将bookDesc添加到liearLayoutMain布局上
<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">
<!--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">
EditText:文本框组件,android:singleLine="true":表示该文本框为单行
<EditText android:hint="账号" android:layout_width="210px"
android:layout_height="wrap_content" android:singleLine="true" />
<!--android:password="true":表示该文本框是用来输入密码的,输入的字符会以某种回显字符方式显示 -->
<EditText android:hint="密码" android:layout_width="210px"
android:layout_height="wrap_content" android:singleLine="true"
<!-- 记住密码和自动登录复选框的TableLayout布局 -->
<TableLayout android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_marginLeft="10px">
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="自动登录" />
<!-- ImageButton:图片按钮,该按钮上面可以显示图片,该组件的详细属性使用会在第4章中详细讲解 -->
<ImageButton android:layout_width="164px"
android:layout_height="35px" android:layout_gravity="center"
android:background="@drawable/loginbutt" />
<!-- 界面底部的四个复选框的TableLayout布局-->
<TableLayout android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_marginLeft="10px"
android:layout_marginTop="40px">
<CheckBox android:text="隐身登录" android:textColor="#FF000000"/>
<CheckBox android:layout_marginLeft="68px"
android:textColor="#FF000000" android:text="开启振动" />
<CheckBox android:text="接收群消息" android:textColor="#FF000000"/>
<CheckBox android:layout_marginLeft="68px"
android:textColor="#FF000000" android:text="静音登录" />
publicclass MyAccelerometer_Activity extends Activity
SensorManager mySensorManager;//SensorManager对象引用
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);//将信息字符串赋予名为info的TextView
protectedvoid onResume() //重写onResume方法
protectedvoid onPause()//重写onPause方法
mySensorManager.unregisterListener(mySensorListener);//取消注册监听器
private SensorEventListener mySensorListener = newSensorEventListener()
{//开发实现了SensorEventListener接口的传感器监听器
publicvoid onAccuracyChanged(Sensor sensor, int accuracy)
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对象引用
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);
protectedvoid onResume() //重写onResume方法
mySensorManager.registerListener(mySensorListener, myGyroscope, SensorManager.SENSOR_DELAY_NORMAL);
protectedvoid onPause()//重写onPause方法
mySensorManager.unregisterListener(mySensorListener);//取消注册监听器
private SensorEventListener mySensorListener = newSensorEventListener()
{//开发实现了SensorEventListener接口的传感器监听器
publicvoid onAccuracyChanged(Sensor sensor, int accuracy)
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 mySensorManager;
publicvoid onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
tvX = (TextView)findViewById(R.id.tvX);
info= (TextView)findViewById(R.id.info);
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);//将信息字符串赋予名为info的TextView
protectedvoid onResume() //重写onResume方法
mySensorManager.registerListener(mySensorListener, myLightSensor,SensorManager.SENSOR_DELAY_NORMAL);
mySensorManager.unregisterListener(mySensorListener); //取消注册监听器
//开发实现了SensorEventListener接口的传感器监听器
private SensorEventListener mySensorListener = newSensorEventListener()
publicvoid onAccuracyChanged(Sensor sensor, int accuracy)
publicvoid onSensorChanged(SensorEvent event)
tvX.setText("光强为:"+values[0]);
publicclass MyMagneticFieldSensor_Activity extends Activity
SensorManager mySensorManager;
Sensor myMagnetic_field_Sensor;
TextView tvX,tvY,tvZ,info; //TextView对象引用
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);
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);//将信息字符串赋予名为info的TextView
protectedvoid onResume()//重写onResume方法
mySensorManager.unregisterListener(mySensorListener); //取消注册监听器
//开发实现了SensorEventListener接口的传感器监听器
private SensorEventListener mySensorListener = newSensorEventListener()
publicvoid onAccuracyChanged(Sensor sensor, int accuracy)
publicvoid onSensorChanged(SensorEvent event)
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对象引用
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);
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);//将信息字符串赋予名为info的TextView
protectedvoid onResume()//重写onResume方法
mySensorManager.registerListener(mySensorListener,
myOrientation_Sensor, SensorManager.SENSOR_DELAY_NORMAL);
protectedvoid onPause() //重写onPause方法
mySensorManager.unregisterListener(mySensorListener); //取消注册监听器
//开发实现了SensorEventListener接口的传感器监听器
private SensorEventListener mySensorListener = newSensorEventListener()
publicvoid onAccuracyChanged(Sensor sensor, int accuracy)
publicvoid onSensorChanged(SensorEvent event)
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对象引用
publicvoid onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
tvX = (TextView)findViewById(R.id.tvX);
info=(TextView)findViewById(R.id.info);
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);//将信息字符串赋予名为info的TextView
protectedvoid onResume()//重写onResume方法
mySensorManager.registerListener(mySensorListener,
myProximity_Sensor, SensorManager.SENSOR_DELAY_NORMAL);
protectedvoid onPause() //重写onPause方法
mySensorManager.unregisterListener(mySensorListener); //取消注册监听器
//开发实现了SensorEventListener接口的传感器监听器
private SensorEventListener mySensorListener = newSensorEventListener()
publicvoid onAccuracyChanged(Sensor sensor, int accuracy)
publicvoid onSensorChanged(SensorEvent event)
tvX.setText("手机距离物体的距离为:"+values[0]);
publicclass MyTemperatureSensor_Activity extends Activity
TextView tvX,info; //TextView对象引用
publicvoid onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
tvX = (TextView)findViewById(R.id.tvX);
info=(TextView)findViewById(R.id.info);
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);//将信息字符串赋予名为info的TextView
protectedvoid onResume()//重写onResume方法
mySensorManager.unregisterListener(mySensorListener); //取消注册监听器
//开发实现了SensorEventListener接口的传感器监听器
private SensorEventListener mySensorListener = newSensorEventListener()
publicvoid onAccuracyChanged(Sensor sensor, int accuracy)
publicvoid onSensorChanged(SensorEvent event)
tvX.setText("温度为:"+values[0]);
publicclass OptionsMenuExample extends Activity {
/** Called when the activity is firstcreated. */
publicvoid onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);//加载资源文件
//点击Menu时,系统会调用该方法,初始化选项菜单(OptionsMenu)
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);
publicboolean onOptionsItemSelected(MenuItem item) {
super.onOptionsItemSelected(item);
switch (item.getItemId()) {//获取菜单项的id
Toast.makeText(this, "点击了’"+item.getTitle()+"‘菜单", Toast.LENGTH_LONG).show();
Toast.makeText(this, "点击了‘"+item.getTitle()+"’菜单", Toast.LENGTH_LONG).show();
Toast.makeText(this, "点击了‘"+item.getTitle()+"’菜单", Toast.LENGTH_LONG).show();
Toast.makeText(this, "点击了‘"+item.getTitle()+"’菜单", Toast.LENGTH_LONG).show();
Toast.makeText(this, "点击了‘"+item.getTitle()+"’菜单", Toast.LENGTH_LONG).show();
Toast.makeText(this, "点击了‘"+item.getTitle()+"’菜单", Toast.LENGTH_LONG).show();
Toast.makeText(this, "点击了‘"+item.getTitle()+"’菜单", Toast.LENGTH_LONG).show();
//选项菜单(OptionsMenu)被关闭时触发该方法,三种情况下选项菜单(OptionsMenu)会被关闭
//1.back按钮被点击,2.menu按钮被再次按下,3.选择了某一个菜单项
publicvoid onOptionsMenuClosed(Menu menu) {
Toast.makeText(this, "选项菜单(OptionsMenu)被关闭了", Toast.LENGTH_LONG).show();
//返回值:false:此方法就把用户点击menu的动作给屏蔽了,onCreateOptionsMenu方法将不会被调用
publicboolean onPrepareOptionsMenu(Menu menu) {
"选项菜单(OptionsMenu)显示之前onPrepareOptionsMenu方法会被调用",
String mobile =mobileText.getText().toString();//得到了用户输入的手机号
Intent intent = new Intent("android.intent.action.CALL", Uri.parse("tel:"+ mobile));
// 第一个参数为文件名,会自动帮你创建不用指定文件名后缀,会自动添加上.xml
// 第二个参数为访问的模式,Context.MODE_PRIVATE表示只可以本程序访问
//参数为:Context.MODE_WORLD_READABLE表示外部程序可以访问
SharedPreferences sp = getSharedPreferences("itcast",
String name = ming.getText().toString();
String a = age.getText().toString();
// 如果不真执行commit()方法,那么上面的就是保存在内存中,没有保存在文件中
Toast.makeText(MainActivity.this, R.string.success, 1).show();
//将值设置进文本中,在sharePreference里面拿出值来
ming.setText(sp.getString("name", ""));
age.setText(sp.getString("age", ""));
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"
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);
pd = ProgressDialog.show(Activity01.this, title, content);
} catch (InterruptedException e) {
seek.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
publicvoid onStopTrackingTouch(SeekBar seekBar) {
System.out.println("stop-->" + seekBar.getProgress());
publicvoid onStartTrackingTouch(SeekBar seekBar) {
System.out.println("start-->" + seekBar.getProgress());
publicvoid onProgressChanged(SeekBar seekBar, int progress,
SmsManager smsManager =SmsManager.getDefault();
// 把短信内容拆分,因为短信太大要进行两条短信发送,要用本身提供的方法
ArrayList<String> arrList= smsManager.divideMessage(con);
smsManager.sendTextMessage(hao,null, text, null, null);
* 第一个参数表示上下文,应用所运行到的信息,相当于applicaiton第二个参数表示提示的信息第三个参数表示显示的时间
Toast.makeText(MainActivity.this, R.string.successful,2).show();
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();
if (bluetoothAdapter.isEnabled()) {// 判断蓝牙是否开启
statusText.setText("蓝牙状态:开启");// 设置蓝牙状态提示
statusText.setText("蓝牙状态:关闭");// 设置蓝牙状态提示
if (!bluetoothAdapter.isEnabled()) {// 判断蓝牙是否打开
Intent enableIntent = new Intent(
BluetoothAdapter.ACTION_REQUEST_ENABLE);// 打开蓝牙
Toast.makeText(this, "蓝牙开启中......", Toast.LENGTH_SHORT).show();
Toast.makeText(this, "蓝牙已经开启", Toast.LENGTH_SHORT).show();
if (bluetoothAdapter.isEnabled()) {// 判断蓝牙是否打开
bluetoothAdapter.disable();// 关闭蓝牙
Toast.makeText(this, "蓝牙已经关闭", Toast.LENGTH_SHORT).show();
Toast.makeText(this, "蓝牙是关闭的", Toast.LENGTH_SHORT).show();
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
<uses-permission android:name="android.permission.BLUETOOTH" />
private String info = "user_info";// 共享文件名
* 把user(用户名),password(密码)保存到文件
SharedPreferences sPreferences = getSharedPreferences(info, 0);//获取SharedPreferences
Editor editor =sPreferences.edit();//打开SharedPreferences的编辑状态
editor.putString("User", user);//存储用户名
editor.putString("Password", password);//存储密码
new AlertDialog.Builder(SharedData.this).setTitle("登录信息").setMessage(
"用户 " + sPreferences.getString("User", "") + " 登录成功")
.setPositiveButton("确定", new OnClickListener() {
publicvoid onClick(DialogInterface arg0, int arg1) {
* 获取文件中的数据,如果文件中存在相应的数据,把该数据赋值到相应的EditText组件对象
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组件对象
// 创建一个ServerSocket对象,并让这个Scoekt在4567端口监听s
// 调用ServerSocket的accept()方法,接受客户端发送的请求
// 当客户端没有发送请求,accept处于阻塞的一种状态,不再往下运行
// 从Socket当中得到IntputStream(),读取客户端传过来的数据
InputStream is = s.getInputStream();
byte[] buff = newbyte[1024 * 4];
while ((temp = is.read(buff)) != -1) {
System.out.println(new String(buff, 0, temp));
// TODO Auto-generatedcatch block
// TODO Auto-generatedcatch block
//创建一个DatagramSocket对象,监听4567端口
DatagramSocket ds=new DatagramSocket(4567);
//使用UDP所发送的数据包,创建一个空的DatagramPacket用于接收客户端的内容
DatagramPacketdp=new DatagramPacket(data, data.length);
//使用receive方法接收客户端所发送过来的数据,同样是一个阻塞的方法
System.out.println(dp.getLength());
String result=new String(dp.getData());
// TODO Auto-generatedcatch block
// createFromResource(Context context, int textArrayResId, int
// 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);
mySpinner.setAdapter(adapter);
// 第五步:为Spinner添加事件监听,setOnItemSelectedListener该事件在菜单被选中时触发
mySpinner.setOnItemSelectedListener(new OnItemSelectedListener() {
* 功能:Spinner的项被选择时触发该方法 parent 当前被选择的对象所在的 AdapterView view
* 在AdapterView中被点击的View position 当前点击项在View的位置,从0开始,0是第一项 id
publicvoid onItemSelected(AdapterView<?> parent, View view,
// TODO Auto-generatedmethod stub
"position:" + position + " id:" + id + "value:"
+ mySpinner.getSelectedItem().toString(),
publicvoid onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generatedmethod stub
Toast.makeText(SpinnerExample.this, "unselected",
allCitys = new ArrayList<String>();// 创建城市ArrayList,并添加三个元素
mySpinner = (Spinner) this.findViewById(R.id.mySpinner);// 从XML布局文件中获取Spinner对象
adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item, allCitys);
.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);// 设置下拉菜单下拉项的布局
mySpinner.setAdapter(adapter);// 为Spinner添加适配器
addBut.setOnClickListener(new OnClickListener() {
// 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, "该项已存在",
if (!newCity.trim().equals("")) {// 文本框的内容不为“”时
adapter.add(newCity);// 将文本框中输入的信息添加到adapter中
int position = adapter.getPosition(newCity);// 获取newCity在ArrayAdapter中的位置
mySpinner.setSelection(position);// 选中下拉菜单中下标为position的项
newCityEdit.setText("");// 清空文本框
removeBut.setOnClickListener(new OnClickListener() {
// TODO Auto-generatedmethod stub
if (mySpinner.getSelectedItem() != null) {
adapter.remove(mySpinner.getSelectedItem().toString());// 从adapter中删除当前选中的项目
if (adapter.getCount() == 0) {// 如果adapter中没有项目,提示用户
Toast.makeText(SpinnerExample2.this, "没有项目可以移除",
mySpinner.setOnItemSelectedListener(new OnItemSelectedListener() {
publicvoid onItemSelected(AdapterView<?> parent, View view,
// TODO Auto-generatedmethod stub
newCityEdit.setText(parent.getSelectedItem().toString());// 将当前选中的项目显示在newCityEdit上
publicvoid onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generatedmethod stub
//点击Menu时,系统会调用该方法,初始化选项菜单(OptionsMenu)
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,22,22,"UndoTyping");
returnsuper.onCreateOptionsMenu(menu);
publicboolean onOptionsItemSelected(MenuItem item) {
// TODO Auto-generatedmethod stub
Toast.makeText(this, "点击了’"+item.getTitle()+"‘菜单", Toast.LENGTH_LONG).show();
Toast.makeText(this, "点击了’"+item.getTitle()+"‘菜单", Toast.LENGTH_LONG).show();
Toast.makeText(this, "点击了File子菜单’"+item.getTitle()+"‘", Toast.LENGTH_LONG).show();
Toast.makeText(this, "点击了File子菜单’"+item.getTitle()+"‘", Toast.LENGTH_LONG).show();
Toast.makeText(this, "点击了File子菜单’"+item.getTitle()+"‘", Toast.LENGTH_LONG).show();
Toast.makeText(this, "点击了Edit子菜单’"+item.getTitle()+"‘", Toast.LENGTH_LONG).show();
Toast.makeText(this, "点击了Edit子菜单’"+item.getTitle()+"‘", Toast.LENGTH_LONG).show();
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(){//“设置日期”按钮的单击事件
// TODO Auto-generatedmethod stub
//参数含义依次为context:组件运行Activity,TimePickerDialog.OnTimeSetListener:选择时间事件
//hourOfDay:当前组件上显示小时,minute:当前组件上显示的分钟,is24HourView:是否是24小时方式显示,或者AM/PM方式显示
publicvoid onTimeSet(TimePicker view, int hourOfDay,
// TODO Auto-generatedmethod stub
showTime.setText(year+"-"+(month+1)+"-"+day+" "+hourOfDay+":"+myminute);
toast = Toast.makeText(ToastExample.this, R.string.ToastText,
toast.setGravity(Gravity.CENTER, 0, 0);
LinearLayout view =(LinearLayout) toast.getView();// getView():获取Toast的View对象
ImageView imgView = newImageView(ToastExample.this);// 创建ImageView对象
imgView.setImageResource(R.drawable.icon);// 设置imgView的背景图片
view.addView(imgView);// 将imgView添加到View上
toast.setView(view);// 将view显示在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上
Window window=this.getWindow();//获取当前Activity的Window
this.requestWindowFeature(Window.FEATURE_NO_TITLE); //隐藏窗体上方的标题栏
setContentView(R.layout.main);
this.setTitle("progressing...."); //设置标题栏上的文字
Window window=this.getWindow(); //获取当前Activity的Window
this.requestWindowFeature(Window.FEATURE_PROGRESS); //标题栏显示滚动条
setContentView(R.layout.main);//设置当前窗体的布局管理文件
this.setProgressBarVisibility(true);//设置进度条可见
this.setProgress(1800);//设置第一进度条的长度
this.setSecondaryProgress(8000);//设置第二进度条的长度
if (mediaPlayer != null) {// 判断MediaPlayer对象不为空
if (mediaPlayer.isPlaying()) {// 判断MediaPlayer对象正在播放中,并不执行以下程序
mediaPlayer = MediaPlayer.create(this, R.raw.dudong);// 加载资源文件里的MP3文件
.setOnCompletionListener(newMediaPlayer.OnCompletionListener() {
publicvoid onCompletion(MediaPlayer arg0) {// 覆盖文件播出完毕事件
// 解除资源与MediaPlayer的赋值关系,让资源可以为其它程序利用
mediaPlayer.setOnErrorListener(new MediaPlayer.OnErrorListener() {
publicboolean onError(MediaPlayer arg0, int arg1, int arg2) {
// 解除资源与MediaPlayer的赋值关系,让资源可以为其它程序利用
if (mediaPlayer != null) {// 判断MediaPlayer对象不为空
if (mediaPlayer.isPlaying()) {// 判断MediaPlayer对象正在播放中
if (mediaPlayer != null) {// 判断MediaPlayer对象不为空
if (mediaPlayer != null) {// 判断MediaPlayer对象不为空
if (mediaPlayer.isPlaying()) {// 判断MediaPlayer对象正在播放中,并不执行以下程序
if (isPause) {// 判断MediaPlayer对象是否暂停,如果暂停就不重新播放
mediaPlayer = new MediaPlayer();
.setOnCompletionListener(newMediaPlayer.OnCompletionListener() {
publicvoid onCompletion(MediaPlayer arg0) {// 覆盖文件播出完毕事件
// 解除资源与MediaPlayer的赋值关系,让资源可以为其它程序利用
mediaPlayer.setOnErrorListener(new MediaPlayer.OnErrorListener() {
publicboolean onError(MediaPlayer arg0, int arg1, int arg2) {
// 解除资源与MediaPlayer的赋值关系,让资源可以为其它程序利用
String sdCard = Environment.getExternalStorageDirectory().getPath();
mediaPlayer.setDataSource(sdCard + File.separator + "dudong.mp3");// 为MediaPlayer设置数据源
if (mediaPlayer != null) {// 判断MediaPlayer对象不为空
if (mediaPlayer.isPlaying()) {// 判断MediaPlayer对象正在播放中
if (mediaPlayer != null) {// 判断MediaPlayer对象不为空
if (mediaPlayer != null) {// 判断MediaPlayer对象不为空
if (mediaPlayer.isPlaying()) {// 判断MediaPlayer对象正在播放中,并不执行以下程序
if (isPause) {// 判断MediaPlayer对象是否暂停,如果暂停就不重新播放
mediaPlayer = new MediaPlayer();
.setOnCompletionListener(newMediaPlayer.OnCompletionListener() {
publicvoid onCompletion(MediaPlayer arg0) {// 覆盖文件播出完毕事件
// 解除资源与MediaPlayer的赋值关系,让资源可以为其它程序利用
mediaPlayer.setOnErrorListener(new MediaPlayer.OnErrorListener() {
publicboolean onError(MediaPlayer arg0, int arg1, int arg2) {
// 解除资源与MediaPlayer的赋值关系,让资源可以为其它程序利用
String path = "http://5.gaosu.com/download/ring/000/086/8e2c23ec414592efdfad5353c21ce888.mp3";
mediaPlayer.setDataSource(path);// 为MediaPlayer设置数据源
if (mediaPlayer != null) {// 判断MediaPlayer对象不为空
if (mediaPlayer.isPlaying()) {// 判断MediaPlayer对象正在播放中
if (mediaPlayer != null) {// 判断MediaPlayer对象不为空
staticfinalprivateintMENU_LIST1 = Menu.FIRST;
staticfinalprivateintMENU_LIST2 = Menu.FIRST + 1;
private ArrayAdapter<String> mla;
protectedvoid onCreate(Bundle savedInstanceState)
// TODO Auto-generatedmethod stub
super.onCreate(savedInstanceState);
protectedvoid onListItemClick(ListView l, View v, int position, long id)
// TODO Auto-generatedmethod stub
Toast.makeText(EX04_20.this, mString[selectedItem], Toast.LENGTH_SHORT)
super.onListItemClick(l, v, position, id);
publicboolean onCreateOptionsMenu(Menu menu)
// TODO Auto-generatedmethod stub
/* 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);
publicboolean onOptionsItemSelected(MenuItem item)
// TODO Auto-generatedmethod stub
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);
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);
returnsuper.onOptionsItemSelected(item);
Configuration conf=res.getConfiguration();
DisplayMetrics dm=res.getDisplayMetrics();
res.updateConfiguration(conf, dm);
// 使用et.setTransformationMethod(HideReturnsTransformationMethod.getInstance())进行显示;
et.setTransformationMethod(HideReturnsTransformationMethod
et.setTransformationMethod(PasswordTransformationMethod
/** Calledwhen the activity is first created. */
publicvoid onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mVibrator01 = (Vibrator) getApplication().getSystemService(
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()
if (mtogglebutton1.isChecked())
Toast.makeText(EX05_06.this,getString(R.string.str_ok),
/* 取消震动 */mVibrator01.cancel();
Toast.makeText(EX05_06.this, getString(R.string.str_end),
/* 设定ToggleButton使用OnClickListener来启动事件 */
mtogglebutton2.setOnClickListener(new OnClickListener()
if (mtogglebutton2.isChecked())
/* 设定震动的周期 */mVibrator01.vibrate(newlong[]
Toast.makeText(EX05_06.this,getString(R.string.str_ok),
Toast.makeText(EX05_06.this,getString(R.string.str_end),
mtogglebutton3.setOnClickListener(new OnClickListener()
if (mtogglebutton3.isChecked())
{ 1000, 50, 1000, 50, 1000 }, 0);
Toast.makeText(EX05_06.this,getString(R.string.str_ok),
Toast.makeText(EX05_06.this,getString(R.string.str_end),
/* 声明四个UI变量与一个常数作为Activity接收回传值用 */
privatestaticfinalintPICK_CONTACT_SUBACTIVITY = 2;
/** Calledwhen the activity is first created. */
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()
// TODO Auto-generated method stub
// Uri uri =Uri.parse("content://contacts/people/");
// 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),
protectedvoid onActivityResult(int requestCode, int resultCode, Intent data)
// TODO Auto-generatedmethod stub
final Uri uriRet = data.getData();
/* 必须要有android.permission.READ_CONTACTS权限 */
Cursor c = managedQuery(uriRet, null, null, null, null);
.getColumnIndexOrThrow(ContactsContract.Contacts.DISPLAY_NAME));
.getColumnIndex(ContactsContract.Contacts._ID));
Cursor phones =getContentResolver().query(
ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = "
StringBuffer sb = new StringBuffer();
/* 2.0可以允许User设定多组电话号码,但本范例只捞一组电话号码作示范 */
.getColumnIndex(ContactsContract.CommonDataKinds.Phone.TYPE));
.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
resType = ContactsContract.CommonDataKinds.Phone
.getTypeLabelResource(typePhone);
sb.append(getString(resType) + ": " + numPhone+ "\n");
mEditText02.setText(numPhone);
sb.append("no Phone number found");
Toast.makeText(this, sb.toString(),Toast.LENGTH_SHORT).show();
mTextView01.setText(e.toString());
super.onActivityResult(requestCode, resultCode,data);
<uses-permission android:name="android.permission.READ_CONTACTS"></uses-permission>
publicvoid clearWallpaper() throws IOException
// TODO Auto-generatedmethod stub
protectedstatic InputStream is;
private ImageAdapter mImageAdapter01;
/** Calledwhen the activity is first created. */
publicvoid onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mImageAdapter01 = new ImageAdapter(EX05_13.this, myImageIds);
Gallery g = (Gallery) findViewById(R.id.mygallery);
g.setAdapter(mImageAdapter01);
g.setOnItemClickListener(newGallery.OnItemClickListener()
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]);
Toast.makeText(EX05_13.this,getString(R.string. my_gallery_text_pre),Toast.LENGTH_SHORT).show();
.setNegativeButton(R.string.str_no, newDialogInterface.OnClickListener()
publicvoid onClick(DialogInterface dialoginterface, int i)
publicclass ImageAdapter extends BaseAdapter
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);
// TODO Auto-generatedmethod stub
public Object getItem(int position)
// TODO Auto-generatedmethod stub
@Overridepubliclong getItemId(int position)
// TODO Auto-generatedmethod stub
public View getView(int position, ViewconvertView, ViewGroup parent)
// TODO Auto-generatedmethod stub
ImageView i = new ImageView(mContext);
i.setImageResource(myImageIds[position]);
i.setScaleType(ImageView.ScaleType.FIT_XY);
i.setLayoutParams(new Gallery.LayoutParams(138,108));
i.setBackgroundResource(mGalleryItemBackground);
publicvoid setWallpaper(InputStream data) throws IOException
// TODO Auto-generatedmethod stub
/* 以getSystemService取得WIFI_SERVICE */
mWiFiManager01 = (WifiManager) this.getSystemService(Context.WIFI_SERVICE);
if(mWiFiManager01.isWifiEnabled())
if(mWiFiManager01.getWifiState()==WifiManager.WIFI_STATE_ENABLED)
mCheckBox01.setText(R.string.str_uncheck);
mCheckBox01.setChecked(false);
mCheckBox01.setText(R.string.str_checked);
mCheckBox01.setChecked(false);
mCheckBox01.setText(R.string.str_checked);
mCheckBox01.setOnClickListener(new CheckBox.OnClickListener()
// TODO Auto-generated method stub
if(mCheckBox01.isChecked()==false)
if(mWiFiManager01.isWifiEnabled() )
if(mWiFiManager01.setWifiEnabled(false))
mTextView01.setText(R.string.str_stop_wifi_done);
mTextView01.setText(R.string.str_stop_wifi_failed);
switch(mWiFiManager01.getWifiState())
case WifiManager.WIFI_STATE_ENABLING:
getResources().getText(R.string.str_stop_wifi_failed)+":"+
getResources().getText(R.string.str_wifi_enabling)
case WifiManager.WIFI_STATE_DISABLING:
getResources().getText(R.string.str_stop_wifi_failed)+":"+
getResources().getText(R.string.str_wifi_disabling)
case WifiManager.WIFI_STATE_DISABLED:
getResources().getText(R.string.str_stop_wifi_failed)+":"+
getResources().getText(R.string.str_wifi_disabled)
case WifiManager.WIFI_STATE_UNKNOWN:
getResources().getText(R.string.str_stop_wifi_failed)+":"+
getResources().getText(R.string.str_wifi_unknow)
mCheckBox01.setText(R.string.str_checked);
elseif(mCheckBox01.isChecked()==true)
if(mWiFiManager01.setWifiEnabled(true))
switch(mWiFiManager01.getWifiState())
case WifiManager.WIFI_STATE_ENABLING:
getResources().getText(R.string.str_wifi_enabling)
case WifiManager.WIFI_STATE_ENABLED:
getResources().getText(R.string.str_start_wifi_done)
getResources().getText(R.string.str_start_wifi_failed)+":"+
getResources().getText(R.string.str_wifi_unknow)
mTextView01.setText(R.string.str_start_wifi_failed);
switch(mWiFiManager01.getWifiState())
case WifiManager.WIFI_STATE_ENABLING:
getResources().getText(R.string.str_start_wifi_failed)+":"+
getResources().getText(R.string.str_wifi_enabling)
case WifiManager.WIFI_STATE_DISABLING:
getResources().getText(R.string.str_start_wifi_failed)+":"+
getResources().getText(R.string.str_wifi_disabling)
case WifiManager.WIFI_STATE_DISABLED:
getResources().getText(R.string.str_start_wifi_failed)+":"+
getResources().getText(R.string.str_wifi_disabled)
case WifiManager.WIFI_STATE_UNKNOWN:
getResources().getText(R.string.str_start_wifi_failed)+":"+
getResources().getText(R.string.str_wifi_unknow)
mCheckBox01.setText(R.string.str_uncheck);
publicvoid mMakeTextToast(String str, boolean isLong)
Toast.makeText(EX05_17.this, str, Toast.LENGTH_LONG).show();
Toast.makeText(EX05_17.this, str, Toast.LENGTH_SHORT).show();
// TODO Auto-generatedmethod stub
/* 于onResume重写事件为取得开启程序当前WiFi的状态 */
switch(mWiFiManager01.getWifiState())
case WifiManager.WIFI_STATE_ENABLED:
getResources().getText(R.string.str_wifi_enabling)
case WifiManager.WIFI_STATE_ENABLING:
getResources().getText(R.string.str_wifi_enabling)
case WifiManager.WIFI_STATE_DISABLING:
getResources().getText(R.string.str_wifi_disabling)
case WifiManager.WIFI_STATE_DISABLED:
getResources().getText(R.string.str_wifi_disabled)
case WifiManager.WIFI_STATE_UNKNOWN:
getResources().getText(R.string.str_wifi_unknow)
mTextView01.setText(e.toString());
// TODO Auto-generatedmethod stub
private ArrayAdapter<String> aryAdapter1;
private ArrayList<String> arylistTask;
privateintintGetTastCounter=30;
private ActivityManager mActivityManager;
/** Calledwhen the activity is first created. */
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()
// TODO Auto-generated method stub
/* ActivityManager对象守系统取得ACTIVITY_SERVICE */
mActivityManager =(ActivityManager)EX05_21.this.getSystemService(ACTIVITY_SERVICE);
arylistTask = new ArrayList<String>();
/* 以getRunningTasks方法取并正在运行中的程序TaskInfo */
/* 以循环及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);
getResources().getText(R.string.str_err_no_running_task).toString(),
//getResources().getText(R.string.str_err_no_running_service).toString(),
/* 发现后台运行程序,以ListView Widget条在出现 */
mListView01.setAdapter(aryAdapter1);
/* 当无GET_TASKS权限时(SecurityException例?)提示信息 */
getResources().getText(R.string.str_err_permission).toString(),
mListView01.setOnItemSelectedListener(new ListView.OnItemSelectedListener()
publicvoid onItemSelected(AdapterView<?> parent,View v, int id, long arg3)
// TODO Auto-generated method stub
mMakeTextToast(arylistTask.get(id).toString(),false);
publicvoid onNothingSelected(AdapterView<?> arg0)
// TODO Auto-generated method stub
mListView01.setOnItemClickListener(new ListView.OnItemClickListener()
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)
Toast.makeText(EX05_21.this, str, Toast.LENGTH_LONG).show();
Toast.makeText(EX05_21.this, str, Toast.LENGTH_SHORT).show();
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()
/* 方法一:重写getRequestedOrientation */
/* 若无法取得screenOrientation属性 */
if(getRequestedOrientation()==-1)
/* 提示无法进行画面旋转叫能,帆无法??Orientation */
mTextView01.setText(getResources().getText(R.string.str_err_1001));
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));
/* 重写Activity里的setRequestedOrientation()方法 */
//setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
// setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
publicvoid setRequestedOrientation(int requestedOrientation)
// TODO Auto-generatedmethod stub
case (ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE):
getResources().getText(R.string.str_msg1).toString(),
case (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT):
getResources().getText(R.string.str_msg2).toString(),
super.setRequestedOrientation(requestedOrientation);
publicint getRequestedOrientation()
// TODO Auto-generatedmethod stub
/* 此重写getRequestedOrientation方法,可取得当前屏幕的方向 */
returnsuper.getRequestedOrientation();
publicvoid mMakeTextToast(String str, boolean isLong)
Toast.makeText(EX05_22.this, str, Toast.LENGTH_LONG).show();
Toast.makeText(EX05_22.this, str, Toast.LENGTH_SHORT).show();
publicvoid onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
/* 设定ContentView为自定义的MyView */
MyView myView = new MyView(this);
privateclass MyView extends View
public MyView(Context context)
protectedvoid onDraw(Canvas canvas)
canvas.drawColor(Color.WHITE);
/* 设定paint的style为STROKE:空心的 */
paint.setStyle(Paint.Style.STROKE);
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.drawPath(path1, paint);
paint.setStyle(Paint.Style.FILL);
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); /* 画一个实心三角形 */
canvas.drawPath(path2, paint); /* 画一个实心梯形 */
canvas.drawPath(path3, paint); /* 设定渐层色 */
Shader mShader = new LinearGradient(0,0, 100, 100, newint[]
{ Color.RED, Color.GREEN, Color.BLUE, Color.YELLOW }, null,
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); /* 画一个渐层色的三角形 */
canvas.drawPath(path4, paint); /* 画一个渐层色的梯形 */
canvas.drawPath(path5, paint); /* 写字 */
canvas.drawText(getResources().getString(R.string.str_text1),
canvas.drawText(getResources().getString(R.string.str_text2),
canvas.drawText(getResources().getString(R.string.str_text3),
canvas.drawText(getResources().getString(R.string.str_text4),
canvas.drawText(getResources().getString(R.string.str_text5),
canvas.drawText(getResources().getString(R.string.str_text6),
private ImageView mImageView01; /* 宣告相关变量作为储存图片宽高,位置使用 */
privateintintWidth, intHeight, intDefaultX, intDefaultY;
privatefloatmX, mY; /* 宣告储存屏幕的分辨率变量 */
privateintintScreenX, intScreenY;
/** Calledwhen the activity is first created. */
publicvoid onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.main); /* 取得屏幕对象 */
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm); /* 取得屏幕解析像素 */
intScreenY = dm.heightPixels; /* 设定图片的宽高 */
intHeight = 100; /* 透过findViewById建构子建立ImageView对象 */
mImageView01 = (ImageView) findViewById(R.id.myImageView1); /* 将图片从Drawable指派给ImageView来呈现 */
mImageView01.setImageResource(R.drawable.baby); /* 初始化按钮位置置中 */
RestoreButton(); /* 当按下ImageView,还原初始位置 */
mImageView01.setOnClickListener(new Button.OnClickListener()
publicboolean onTouchEvent(MotionEvent event)
privatevoid picMove(float x, float y)
mY = y - (intHeight / 2); /* 防图片超过屏幕的相关处理 *//* 防止屏幕向右超过屏幕 */
if ((mX + intWidth) > intScreenX)
} /* 防止屏幕向左超过屏幕 */elseif (mX < 0)
} /* 防止屏幕向下超过屏幕 */elseif ((mY + intHeight) > intScreenY)
} /* 防止屏幕向上超过屏幕 */elseif (mY < 0)
Log.i("jay", Float.toString(mX) + "," + Float.toString(mY)); /*
mImageView01.setLayoutParams(new AbsoluteLayout.LayoutParams(intWidth,
intHeight, (int) mX, (int) mY));
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)
Toast.makeText(EX07_04.this, str, Toast.LENGTH_LONG).show();
Toast.makeText(EX07_04.this, str, Toast.LENGTH_SHORT).show();
/*声明一个 ImageButton,TextView,MediaPlayer变量*/
private ImageButton mButton01, mButton02, mButton03;
private MediaPlayer mMediaPlayer01;
/*声明一个Flag做为确认音乐是否暂停的变量并预设为false*/
privatebooleanbIsPaused = false;
/** Calledwhen the activity is first created. */
publicvoid onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
/*透过findViewById建构巳建立TextView与ImageView对象*/
mButton01 =(ImageButton) findViewById(R.id.myButton1);
mButton02 =(ImageButton) findViewById(R.id.myButton2);
mButton03 =(ImageButton) findViewById(R.id.myButton3);
mTextView01 = (TextView) findViewById(R.id.myTextView1);
mMediaPlayer01 = new MediaPlayer();
/* 将音乐以Import的方式保存?res/raw/always.mp3 */
mMediaPlayer01 = MediaPlayer.create(EX07_09.this, R.raw.big);
mButton01.setOnClickListener(new ImageButton.OnClickListener()
// TODO Auto-generated method stub
* 要准备Playback的状态前几定要使用MediaPlayer.prepare()*/
mTextView01.setText(R.string.str_start);
// TODO Auto-generated catch block
mTextView01.setText(e.toString());
mButton02.setOnClickListener(new ImageButton.OnClickListener()
// TODO Auto-generated method stub
mTextView01.setText(R.string.str_close);
// TODO Auto-generated catch block
mTextView01.setText(e.toString());
mButton03.setOnClickListener(new ImageButton.OnClickListener()
// TODO Auto-generated method stub
mTextView01.setText(R.string.str_pause);
/*设定Flag为false表示 Player状态为非暂停状态*/
mTextView01.setText(R.string.str_start);
// TODO Auto-generated catch block
mTextView01.setText(e.toString());
/* 当MediaPlayer.OnCompletionLister会执行的Listener */
mMediaPlayer01.setOnCompletionListener(new MediaPlayer.OnCompletionListener()
publicvoid onCompletion(MediaPlayer arg0)
mTextView01.setText(R.string.str_OnCompletionListener);
mTextView01.setText(e.toString());
/* 当MediaPlayer.OnErrorListener会执行的Listener */
mMediaPlayer01.setOnErrorListener(new MediaPlayer.OnErrorListener()
publicboolean onError(MediaPlayer arg0, int arg1, int arg2)
// TODO Auto-generated method stub
mTextView01.setText(R.string.str_OnErrorListener);
mTextView01.setText(e.toString());
// TODO Auto-generatedmethod stub
/*圳加程序暂停时解除资源与MediaPlayer的指派关系*/
mTextView01.setText(e.toString());
publicstaticvoid main(String[] args) throws Exception {
URL url=new URL("http://www.sohu.com/");
HttpURLConnection con= (HttpURLConnection)url.openConnection();
InputStream is= con.getInputStream();
byte[] img=readInputStream(is);
publicstaticbyte[] readInputStream(InputStream is) throws IOException
ByteArrayOutputStream out=new ByteArrayOutputStream();
while((len=is.read(buff))!=-1)
Android总笔记(未全)相关推荐
- Android学习笔记:Android基础知识点(不断更新中)
1.Android学习笔记:OkHttp 2.Android学习笔记:更新UI的方法(UI线程和非UI线程) 3.Android学习笔记:Volley 4.Android学习笔记:Handler 5. ...
- android 调试笔记
android 调试笔记 adb使用: 连接不上手机 C:\Users\Administrator\.android\adb_usb.ini 增加一行内容: 0x1782 安装第三方应用 $ a ...
- Android开发笔记(一百五十九)Android7.0的分屏模式
现在的手机屏幕越来越大,使得在屏幕上同时开多个窗口不再奢侈,因此Android从7.0开始顺势推出了分屏功能,也被称作多窗口模式.比如把竖长的手机屏幕分成上下两个窗口,一边在上面的窗口中观看电影,一边 ...
- Android开发笔记(一百三十八)文本输入布局TextInputLayout
文本输入布局TextInputLayout TextInputLayout是MaterialDesign库中对编辑框EditText进行增强的一个控件.众所周知,EditText未输入字符时,我们可以 ...
- Android开发笔记(一百二十五)自定义视频播放器
视频播放方式 在Android中播放视频的方式有两种: 1.使用MediaPlayer结合SurfaceView进行播放.其中通过SurfaceView显示视频的画面,通过MediaPlayer来设置 ...
- Android开发笔记(一百零一)滑出式菜单
可移动页面MoveActivity 滑出式菜单从界面上看,像极了一个水平滚动视图HorizontalScrollView,当然也可以使用HorizontalScrollView来实现侧滑菜单.不过今天 ...
- Android开发笔记(八十一)屏幕规格适配
Configuration 适配各种屏幕规格,首先要取到系统对于屏幕的配置信息,这些配置可从工具类Configuration获得.Configuration对象在Activity中通过调用getRes ...
- Android开发笔记(七十九)资源与权限校验
硬件资源 因为移动设备的硬件配置各不相同,为了防止使用了不存在的设备资源,所以要对设备的硬件情况进行检查.一般情况下,前置摄像头.部分传感器在低端手机上是没有的,像SD卡也可能因为用户没插卡使得找不到 ...
- Android开发笔记(一百四十八)自定义输入法软键盘
手机上输入文字,都是通过系统自带的软键盘,这个软键盘可以是Android自带的,也可以是第三方软键盘如搜狗输入法.多数情况下面,系统自带的软键盘已经够用了,可是总有少数情况,系统软键盘无法满足开发者的 ...
最新文章
- 干货篇:AI赋能医药工业发展案例
- ubuntu查看硬件信息
- acwing算法题--完全背包问题
- CSS3盒模型box-sizing属性详解,布局更方便
- 通过ITypedList实现数据绑定扁平化
- 第一百一十四期:盘点十大最新Web UI测试工具
- python爬音乐网站_用 Python 爬取 QQ 音乐全部歌曲
- @property 各个属性作用【使用时最需注意strong/weak类型】【补充部分内存知识】...
- Swift中的可选类型(Optional)
- ASPxGridView数据汇总收藏
- 企业污染排放数据库、海关数据库
- 清华大学计算机杜瑜皓,我在清华等你来 | 金策:从容淡定 “金牌”之风
- 使用python将多份pdf文件合并成一份
- 统考计算机应用基础ex,EXCEL操作题
- 云计算的三种服务模式:IaaS、PaaS、SaaS
- nextpolish安装_Polish安装问题
- cURL – POST请求示例
- j1900安装linux系统,入手J1900改MAC洗白黑群辉的历程
- You must have administrator privileges to run...
- Python pptx模块
热门文章
- Mobileye在耶路撒冷启动自动驾驶测试,挑战极限路况
- P1240 诸侯安置 [dp]
- PHP保持静态页面,PHP 实现页面静态化的几种方法
- 视频编码技术 -1.2色彩原理
- 隐马尔可夫--大内密探HMM围捕赌场老千
- 马上消费首份报告曝光,聚焦6大方向践行社会责任
- hive正则表达式的用法
- Linux配置本机ssh免登陆(解决启动hadoop3.0时报 Permission denied (publickey,password). 错误)
- [Vue][面试]你怎么理解vue中的diff算法?
- 斜面怎么计算机械效率,斜面的机械效率公式是什么