Display Metrics android util Display Metrics Display Metrics

  • Slides: 18
Download presentation

获取手机分辨率: 使用的类- Display. Metrics 类的位置- android. util. Display. Metrics 例如: Display. Metrics dm=new Display.

获取手机分辨率: 使用的类- Display. Metrics 类的位置- android. util. Display. Metrics 例如: Display. Metrics dm=new Display. Metrics(); get. Window. Manager(). get. Default. Display(). get. Metrics(dm); String str. Opt=“这个手分辨率是: ”+dm. width. Pixels+”x”+dm. height. Pixels; m. Text. View. set. Text(str. Opt); 注意:get. Window. Manager()获取到Activity的Handler。

样式修饰处理: stylecss. xml编写(res/values/stylecss. xml) 例如: <? xml version=“ 1. 0” encoding=“utf-8”? > <resources> <style

样式修饰处理: stylecss. xml编写(res/values/stylecss. xml) 例如: <? xml version=“ 1. 0” encoding=“utf-8”? > <resources> <style name=“style 1”> <item name=“android: text. Size”>24 sp</item> <item name=“android: text. Color”>#EC 9237</item> </style> … </resources>

Activity调用: /*创建一个intent并指定要启动的class*/ Intent intent=new Intent(); Intent. set. Class(a. this, b. class); /*调用一个新的activity*/ start. Activity(intent);

Activity调用: /*创建一个intent并指定要启动的class*/ Intent intent=new Intent(); Intent. set. Class(a. this, b. class); /*调用一个新的activity*/ start. Activity(intent); /*关闭原本的activity*/ a. this. finish(); /*必须在android. Manifest. xml中定义一新的activity*/ <activity android: name=“b”></activity>

Activity间的数据传递: 方法- 利用andoid. os. bundle对象来封装数据,并利用intent将bundle传递给另一个 intent,在另一个activity中取得intent中的bundle中的数据。 例如: //获取数据 String name=“why”; Integer age=25; Intent intent=new

Activity间的数据传递: 方法- 利用andoid. os. bundle对象来封装数据,并利用intent将bundle传递给另一个 intent,在另一个activity中取得intent中的bundle中的数据。 例如: //获取数据 String name=“why”; Integer age=25; Intent intent=new Intent(); Intent. set. Class(a. this, b. class); Bundle bundle=new Bundle(); bundle. put. String(“name”, name); Bundle. put. Integer(“age”, age); Intent. put. Extras(bundle); start. Activity(intent); //取出数据 Bundle bundle=this. get. Intent(). get. Extras(); String name=bundle. get. String(“name”); Integer age=bundle. get. Integer(“age”); //android. Manifest. xml <activity android: name=“b”></activity>

将数据返回给上个Activity 数据返回: 方法- 我们可以使用start. Activity. For. Result()来唤醒一个activity。利 用这个方法,前一个activity便会等待activity 2的返回,而 activity 2返回的数据就被显示从而达到了结果。 //获取传递的数据 //将数据封装在bundle,并把bundle放入到intent传递。 start.

将数据返回给上个Activity 数据返回: 方法- 我们可以使用start. Activity. For. Result()来唤醒一个activity。利 用这个方法,前一个activity便会等待activity 2的返回,而 activity 2返回的数据就被显示从而达到了结果。 //获取传递的数据 //将数据封装在bundle,并把bundle放入到intent传递。 start. Activity. For. Result(intent, 0); //取出intent中的bundle中的 数据 /*返回result到上一个activity*/ b. this. set. Result(RESULT_OK, intent); b. this. finish(); //android. Manifest. xml <activity android: name=“b”></activity>

拖动相片特效 拖动相片: 方法- 在android中,拖动图片特效可以用Android. content. Context、 Android. widget. Base. Adapter、Android. widget. Image. View等来实现。在 activity中,context犹如canvas

拖动相片特效 拖动相片: 方法- 在android中,拖动图片特效可以用Android. content. Context、 Android. widget. Base. Adapter、Android. widget. Image. View等来实现。在 activity中,context犹如canvas 画布,可能随时被覆盖。我们可以布局一 个Gallery对象,再将widget. Base. Adapter作为容器来存放Gallery所需要的 图片。 //布局一个Gallery对象 <Gallery> //创建一个类a extends Base. Adapter{ Private int[] imgs={}; Public a(Context context){ } int get. Count(){}- 返回所有定义的图片的数量 Object get. Item(int pos){}- 取得当前的容器的数组id Int get. Item. Id(int pos){} … 其他可参考page 94(1) }

About信息: 方法- 在android中,手机的常用的接口是Menu Shortcut, 即所谓的Menu Key。在程序中,除了默认的on. Create外,还需要 建立两个函数on. Create. Menu()和on. Option. Item. Selected()。其中,前者将创建菜单,后者则是菜单项被选中后的事件 处理函数。

About信息: 方法- 在android中,手机的常用的接口是Menu Shortcut, 即所谓的Menu Key。在程序中,除了默认的on. Create外,还需要 建立两个函数on. Create. Menu()和on. Option. Item. Selected()。其中,前者将创建菜单,后者则是菜单项被选中后的事件 处理函数。 Public boolean on. Create. Options. Menu(Menu menu){ menu. add(0, 0, 0, R. string. app_about); Menu. add(0, 1, 1, R. string. str_exit); Return super. on. Create. Options. Menu(menu); } Public boolean on. Options. Item. Selected(Menu. Item item){ Super. on. Options. Item. Selected(item); Switch(item. get. Item. Id){ Case 0: open. Alert. Dialog(); Break; Case 1: Finish(); Break; } } Private void open. Alert. Dialog(){ New Alert. Dialog. Builder(this). set. Titile(“*******”). set. Message(“******”). set. Positive. Button(“”, new Dialog. Interface. on. Click. Listener(){ }). show(); }

加载中的程序 程序加载中: 方法- 在android中,此功能是通过Progress Dialog来实现的,它被 封装在了android. app. Progress. Dialog里。但是要注意的是android 中的progress dialog必须在后台程序运行完毕前,使用dismiss() 来关闭取得焦点的对话框,否则程序会陷入无限循环中。 m. Dialog=Progress.

加载中的程序 程序加载中: 方法- 在android中,此功能是通过Progress Dialog来实现的,它被 封装在了android. app. Progress. Dialog里。但是要注意的是android 中的progress dialog必须在后台程序运行完毕前,使用dismiss() 来关闭取得焦点的对话框,否则程序会陷入无限循环中。 m. Dialog=Progress. Dialog. show(a. this, “title”, “message”, true); m. Text. View. set. Text(m. Dialog); New Thread(){ Public void run(){ Try{ //背景运行的代码 sleep(3000); }catch(){} Finally{m. Dialog. dismiss()} }. start(); }

主题变换: /*应用背景主题 1*/ set. Theme(R. style. Theme_Translucent); /*应用背景主题 2*/ set. Theme(R. style. Theme_Translucent 2);

主题变换: /*应用背景主题 1*/ set. Theme(R. style. Theme_Translucent); /*应用背景主题 2*/ set. Theme(R. style. Theme_Translucent 2); /*设定style. xml*/ <style name=“Theme” parent=“android: Theme”/>- 预设主题 <style name=“Theme. Translucent”> <item name=“android: window. Background”> @drawable/translucent_background </item> <item name=“android: window. No. Title”>false</item> <item name=“android: color. Foreground”>@drawable/blue</item> <item name=“android: color. Background”>@drawable/white</item> </style> <style name=“Theme. Translucent 2”> Parent=“android: Text. Apperance. Theme”> <item name=“android: text. Stytle”>normal</item>

常用的控件 实现文本处理: 例如: 实时地显示edit. Text中的输入文本。我们使用的控件监听方法 为on. Key. Listener。 m. Edit. Text. set. On. Key.

常用的控件 实现文本处理: 例如: 实时地显示edit. Text中的输入文本。我们使用的控件监听方法 为on. Key. Listener。 m. Edit. Text. set. On. Key. Listener(new Edit. Text. on. Key. Listener(){ Public boolean on. Key(View v, int arg 0, Key. Event arg 2 s){ } });

常用控件 下拉菜单Spinner: //main. xml <spinner Android: id=“@+id/my. Spinner” Android: layout_width=“fill_parent” Android: layout_height=“wrap_content” /> //下拉菜单样式文件

常用控件 下拉菜单Spinner: //main. xml <spinner Android: id=“@+id/my. Spinner” Android: layout_width=“fill_parent” Android: layout_height=“wrap_content” /> //下拉菜单样式文件 <Text. View Xmlns: android=http: //schemas. android. com/apk/res/android Android: id=“@+id/text 1” Android: layout_width=“wrap_content” Android: layout_height=“ 24 sp” Android: single. Line=“true” Style=“? android: attr/spinner. Drop. Down. Item. Style”/> //动画样式文件(alpha scale translate rotate) <set Xmlns: android=http: //schemas. android. com/apk/res/android <translate Android: from. XDlta=“ 0” Android: to. XDlta=“-100%p” Android: duration=“ 300” > <alpha Android: from. Alpha=“ 1. 0” Android: to. Alpha=“ 0. 0” Android: duration=“ 300”

常用控件 Gallery相簿: //布局文件 <Gallery Xmlns: android=http: //schemas. android. com/apk/res/android Android: id=“” Android: layout_width=“” Android:

常用控件 Gallery相簿: //布局文件 <Gallery Xmlns: android=http: //schemas. android. com/apk/res/android Android: id=“” Android: layout_width=“” Android: layout_height=“”/> //编写布局文件attrs. xml <resources> <declare-styleable name=“Gallery”> <attr name=“android: gallery. Item. Background”/> </declare-styleable> </resources> 注意:详细可看page 142(1)

常用控件 Java. io. File文件搜索: Private String search. File(String keyword){ String result=“”; File[] files=new File(“/”).

常用控件 Java. io. File文件搜索: Private String search. File(String keyword){ String result=“”; File[] files=new File(“/”). list. Files(); For(File file: files){ If(file. get. Name(). index. Of(keyword)>=0){ Result+=file. get. Path()+”n”; } If(result. equals(“”)) Result=“找不到指定的文件!!”; Return result; } }

安装APK程序 安装APK: Ms-dos- adb install filename. apk Ms-dos- adb install –r filename. apk(重新安装) 注意:运行adb安装APK程序时,不可以同时开

安装APK程序 安装APK: Ms-dos- adb install filename. apk Ms-dos- adb install –r filename. apk(重新安装) 注意:运行adb安装APK程序时,不可以同时开 启多个仿真机,因为不知道安装在哪个仿真机 上。 解决办法: Ms-dos- adb –s emulator-5554 install filename. apk

移除APK程序: Ms-dos- adb uninstall package 例如: Ms-dos- adb uninstall com. android. email 移除程序,但保留信息和Cache :

移除APK程序: Ms-dos- adb uninstall package 例如: Ms-dos- adb uninstall com. android. email 移除程序,但保留信息和Cache : Ms-dos- adb uninstall –k package 查询package名称: Adb shell Ls /data 或ls /data/app Exit Adb uninstall package 注意:新版本中,内建了一个应用程序管理系统,只要在android主页面 中单击menu, 后择Setting applications- manage applications,启动管 理系统。