当前位置:文档之家› Android 日常笔记(一)

Android 日常笔记(一)

Android 日常笔记(一)
Android 日常笔记(一)

View中的setTag(Onbect)表示给View添加一个格外的数据,以后可以用getTag()将这个数据取出来。

super

super出现在继承了父类的子类中。有三种存在方式:

第一种

21. Adapter notifyDataSetChanged 和notifyDataSetInvalidated

如果

███████

███████

███████

███████

███████将列表拉倒最底部(item数量超过一页)notifyDataSetChanged 没有效果,但是notifyDataSetInvalidated有效notifyDataSetInvalidated(),会重绘控件(还原到初始状态)

24. win7锁定任务栏图标快捷方式地址

C:\Users\Liaohuan\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar 25. android获取屏幕的高度和宽度用到WindowManager这个类,两种方法:

1、WindowManager wm = (WindowManager) getContext()

.getSystemService(Context.WINDOW_SERVICE);

int width = wm.getDefaultDisplay().getWidth();

int height = wm.getDefaultDisplay().getHeight();

2、WindowManager wm = this.getWindowManager();

int width = wm.getDefaultDisplay().getWidth();

int height = wm.getDefaultDisplay().getHeight();

26. new 和getInstance

27. 排序:collection

28. 模糊查找(包含)String.contains(String);

29. 获取assets媒体文件并播放

获取屏幕宽度,高度及Density(显示密度)32. 播放列表,点击列表某一项选择播放

33. focus、click、select、enable

@drawable/widget_gender_track

36. xRecyclerView上拉加载会在底部有块白条,并且加载如果没有延时不会显示动画。

37. /**禁止屏幕截图*/

Window win = getWindow();

win.addFlags(https://www.doczj.com/doc/753497028.html,youtParams.FLAG_SECURE);

38. 这是Android原生seekbar.9背景图

39. Arrays.asList()

将一个数组转化为一个List对象,这个方法会返回一个ArrayList类型的对象, 这个ArrayList类并非java.util.ArrayList类,而是Arrays类的静态内部类!

40. 从电脑调试安装apk

41. 不定参数,其实是个数组

42. 获取网页session

javascript:alert (document. cookie)

43.

View.requestFocus();

android:textAppearance="?android:attr/textAppearanceLargeInverse"//文字外观,这里引用的是系统自带的一个外观,?表示系统是否有这种外观,否则使用默认的外观。

TextView属性名称描述

android:autoLink设置是否当文本为URL链接/email/电话号码/map时,文本显示为可点击的链接。可选值

(none/web/email/phone/map/all)

android:autoText如果设置,将自动执行输入值的拼写纠正。此处无效果,在显示输入法并输入的时候起作用。

android:bufferType指定getText()方式取得的文本类别。选项editable 类似于StringBuilder可追加字符,也就是说getText后可调用append方法设置文本内容。spannable 则可在给定的字符区域使用样式,参见这里1、这里2。

android:capitalize设置英文字母大写类型。此处无效果,需要弹出输入法才能看得到,参见EditView此属性说明。

android:cursorVisible设定光标为显示/隐藏,默认显示。

android:digits设置允许输入哪些字符。如“1234567890.+-*/% ()”

android:drawableBottom在text的下方输出一个drawable,如图片。如果指定一个颜色的话会把text的背景设为该颜色,并且同时和background使用时覆盖后者。

android:drawableLeft在text的左边输出一个drawable,如图片。

android:drawablePadding设置text与drawable(图片)的间隔,与drawableLeft、drawableRight、drawableTop、drawableBottom一起使用,可设置为负数,单独使用没有效果。

android:drawableRight在text的右边输出一个drawable,如图片。

android:drawableTop在text的正上方输出一个drawable,如图片。

android:editable设置是否可编辑。这里无效果,参见EditView。

android:editorExtras设置文本的额外的输入数据。在EditView再讨论。

android:ellipsize设置当文字过长时,该控件该如何显示。有如下值设置:”start”—?省略号显示在开头;”end”——省略号显示在结尾;”middle”—-省略号显示在中间;”marquee” ——以跑马灯的方式显示(动画横向移动)

android:freezesText设置保存文本的内容以及光标的位置。参见:这里。

android:gravity设置文本位置,如设置成“center”,文本将居中显示。

android:hintText为空时显示的文字提示信息,可通过textColorHint设置提示信息的颜色。此属性在EditView中使用,但是这里也可以用。

android:imeOptions附加功能,设置右下角IME动作与编辑框相关的动作,如actionDone右下角将显示一个“完成”,而不设置默认是一个回车符号。这个在EditView中再详细说明,此处无用。

android:imeActionId设置IME动作ID。在EditView再做说明,可以先看这篇帖子:这里。

android:imeActionLabel设置IME动作标签。在EditView再做说明。

android:includeFontPadding设置文本是否包含顶部和底部额外空白,默认为true。

android:inputMethod为文本指定输入法,需要完全限定名(完整的包名)。例如:com.google.android.inputmethod.pinyin,但是这里报错找不到。

android:inputType设置文本的类型,用于帮助输入法显示合适的键盘类型。在EditView中再详细说明,这里无效果。

android:linksClickable设置链接是否点击连接,即使设置了autoLink。

android:marqueeRepeatLimit在ellipsize指定marquee的情况下,设置重复滚动的次数,当设置为marquee_forever时表示无限次。android:ems设置TextView的宽度为N个字符的宽度。这里测试为一个汉字字符宽度,如图:

android:maxEms设置TextView的宽度为最长为N个字符的宽度。与ems同时使用时覆盖ems选项。

android:minEms设置TextView的宽度为最短为N个字符的宽度。与ems同时使用时覆盖ems选项。

android:maxLength限制显示的文本长度,超出部分不显示。

android:lines设置文本的行数,设置两行就显示两行,即使第二行没有数据。

android:maxLines设置文本的最大显示行数,与width或者layout_width结合使用,超出部分自动换行,超出行数将不显示。android:minLines设置文本的最小行数,与lines类似。

android:lineSpacingExtra设置行间距。

android:lineSpacingMultiplier设置行间距的倍数。如”1.2”

android:numeric如果被设置,该TextView有一个数字输入法。此处无用,设置后唯一效果是TextView有点击效果,此属性在EdtiView将详细说明。

android:password以小点”.”显示文本

android:phoneNumber设置为电话号码的输入方式。

android:privateImeOptions设置输入法选项,此处无用,在EditText将进一步讨论。

android:scrollHorizontally设置文本超出TextView的宽度的情况下,是否出现横拉条。

android:selectAllOnFocus如果文本是可选择的,让他获取焦点而不是将光标移动为文本的开始位置或者末尾位置。TextView中设置后无效果。

android:shadowColor指定文本阴影的颜色,需要与shadowRadius一起使用。效果:

android:shadowDx设置阴影横向坐标开始位置。

android:shadowDy设置阴影纵向坐标开始位置。

android:shadowRadius设置阴影的半径。设置为0.1就变成字体的颜色了,一般设置为3.0的效果比较好。

android:singleLine设置单行显示。如果和layout_width一起使用,当文本不能全部显示时,后面用“…”来表示。如

android:text="test_ singleLine " android:singleLine="true" android:layout_width="20dp"将只显示“t…”。如果不设置singleLine或者设置为false,文本将自动换行

android:text设置显示文本.

android:shadowDx设置阴影横向坐标开始位置。

android:shadowDy设置阴影纵向坐标开始位置。

android:shadowRadius设置阴影的半径。设置为0.1就变成字体的颜色了,一般设置为3.0的效果比较好。

android:singleLine设置单行显示。如果和layout_width一起使用,当文本不能全部显示时,后面用“…”来表示。如

android:text="test_ singleLine " android:singleLine="true" android:layout_width="20dp"将只显示“t…”。如果不设置singleLine或者设置为false,文本将自动换行

android:text设置显示文本.

android:textSize设置文字大小,推荐度量单位”sp”,如”15sp”

android:textStyle设置字形[bold(粗体) 0, italic(斜体) 1, bolditalic(又粗又斜) 2] 可以设置一个或多个,用“|”隔开

android:typeface设置文本字体,必须是以下常量值之一:normal 0, sans 1, serif 2, monospace(等宽字体) 3]

android:height设置文本区域的高度,支持度量单位:px(像素)/dp/sp/in/mm(毫米)

android:maxHeight设置文本区域的最大高度

android:minHeight设置文本区域的最小高度

android:width设置文本区域的宽度,支持度量单位:px(像素)/dp/sp/in/mm(毫米),与layout_width的区别看这里。

android:maxWidth设置文本区域的最大宽度

android:minWidth设置文本区域的最小宽度

android:textAppearance设置文字外观。如“?android:attr/textAppearanceLargeInverse”这里引用的是系统自带的一个外观,?表示系统是否有这种外观,否则使用默认的外观。

可设置的值如下:

textAppearanceButton/textAppearanceInverse/textAppearanceLarge/textAppearanceLargeInverse/textAppearanceMedium/textA ppearanceMediumInverse/textAppearanceSmall/textAppearanceSmallInverse

android:textAppearance设置文字外观。如“?android:attr/textAppearanceLargeInverse”这里引用的是系统自带的一个外观,?表示系统是否有这种外观,否则使用默认的外观。

可设置的值如下:

textAppearanceButton、textAppearanceInverse、textAppearanceLarge、

textAppearanceLargeInverse、textAppearanceMedium、textAppearanceMediumInverse

48. adb shell input

1,模拟输入文本信息:input text HelloWorld

2.模拟物理按键操作: input keyevent KEYCODE_VOLUME_DOWN

按键参考Android键值表

3.模拟点击操作:input tap 500 500

根据分辨率坐标

4.模拟滑动操作:input swipe 200 500 400 500

49. shell neccfg 查看ip地址

50. adb pull和push

pull 从设备复制到电脑push反之,

adb shell 进入linux命令模式,ls 查看当前目录,cd 进入返回目录,可用TAB快速查看匹配。

得到路径后exit 退出linux模式。

adb pull mnt/sdcard/xxx.txt d:/

将xxx.txt 拷贝到d:/根目录下。

push一样

Android开发者学习笔记——View、Canvas、bitmap

开发者学习笔记——View&Canvas BitMap、View以及Canvas是我们Ophone程序中常用到的类。本日以feisky的学习笔记呈现,通过实例讲解View&Canvas等等。 1. 从资源中获取位图 可以使用BitmapDrawable或者BitmapFactory来获取资源中的位图。 当然,首先需要获取资源: Resources res=getResources(); 使用BitmapDrawable获取位图 使用BitmapDrawable (InputStream is)构造一个BitmapDrawable; 使用BitmapDrawable类的getBitmap()获取得到位图; // 读取InputStream并得到位图 InputStream is=res.openRawResource(R.drawable.pic180); BitmapDrawable bmpDraw=new BitmapDrawable(is); Bitmap bmp=bmpDraw.getBitmap(); 或者采用下面的方式: BitmapDrawable bmpDraw=(BitmapDrawable)res.getDrawable(R.drawable.pic180); Bitmap bmp=bmpDraw.getBitmap(); 使用BitmapFactory获取位图 (Creates Bitmap objects from various sources, including files, streams, and byte-arrays.) 使用BitmapFactory类decodeStream(InputStream is)解码位图资源,获取位图。Bitmap bmp=BitmapFactory.decodeResource(res, R.drawable.pic180); BitmapFactory的所有函数都是static,这个辅助类可以通过资源ID、路径、文件、数据流等方式来获取位图。 以上方法在编程的时候可以自由选择,在Android SDK中说明可以支持的图片格式如下:png (preferred), jpg (acceptable), gif (discouraged),和bmp(Android SDK Support Media Format)。

新版Android开发教程+笔记七--基础UI编程1

封面

Android 基础UI编程1 更改与显示文字标签 TextView 标签的使用 ①导入TextV iew包 import android.widget.TextView; ②在mainActivity.java中声明一个TextView private TextView mTextView01; ③在main.xml中定义一个TextView ④利用findView ById()方法获取main.xml中的TextView mTextView01 = (TextView) findViewById(R.id.TextView01); ⑤设置TextV iew标签内容 String str_2 = "欢迎来到Android 的TextView 世界..."; mTextView01.setText(str_2); ⑥设置文本超级链接

android开发笔记

实现直接拒接来电 经过简单的google/baidu后,发现android没有现成的API去拒接电话。android可以通过注册BroadcastReceiver截取短信,因为这个broadcast是一个ordered broadcast,所以只要优先级比短信接收程序高,就可以提前终止掉这个broadcast receiver。 但是,电话呼入则没有类似的机制。不过,综合网上的一些资料,通过以下大体的步骤,则可以实现拒接电话: 1、注册broadcast receiver,监视手机状态: Java代码 1. 2. 3. 4. 5. 当手机接收到电话时,则会触发该broadcast receiver。 2、最重要的,就是取得可以控制电话的API。这些API貌似是android内部的接口,并未暴露。具体方式参见该帖子:https://www.doczj.com/doc/753497028.html,/u/20091226 ... d-586a278875c0.html 使用时需要手动添加import: Java代码 1.import com.android.internal.telephony.ITelephony; import com.android.internal.telephony.ITelephony; 同样的方式,在stackoverflow上也有人大致地提了下:https://www.doczj.com/doc/753497028.html,/questio ...

android手机测试总结(笔记)

2012年3月21日 系统测试(非功能性测试) 1、适配性测试 a) 手机的型号 b) 网络通信情况(2G\3G\WIFI\飞行模式、NET\WAP、中国电信、移动、联通) c) Android的版本号(Android 4.0、Android 2.3、Android 2.2、Android 2.1)主要是2.2\2. 3.*\ 4.0 d) 屏幕的分辨率(1280×720、960×640、960×540、854×480、800×480、640×480、640×360、480×360、480×320、400×240、320×240、220×176、) 2、功能模块测试(功能性测试) a) 根据预先编写的测试用例测试 3、异常测试(手机交互性事件) a) *按键打断,如:电源键、home键、音量键、返回键等;插拔数据线 b) 其他程序后台相互切换

c) *网络切换(2G\3G\WIFI\飞行模式、NET\WAP、中国电信、移动、联通、) d) 待机后是否能恢复程序和网络 e) 短信、电话和闹铃 f) 安装、覆盖安装和卸载 g) 有无SIM卡、有无SD卡 4、编写帮助文档或使用说明 2012-6-28 用户体验测试 1、界面 ①文字错误、图片不显示或显示不正确、缺少输入项、按钮的大小和点击效果 ②布局、图片和配色设计问题,测试人员很难进入 ③提示信息,提示信息语言准确简洁,有指导性。在应该提示的位置放入提示信息,比如程序需要接入网络,在无网络的情况下应给予提示 ④提示信息,提示信息的方式有很多,大概有弹出式和非弹出式两种,根据实际情况来区分

⑤阅读性,手机因输入方式和屏幕大小限时,目前以阅读为主要(除聊天软件),做好阅读是关键。文字字体、大小、颜色和背景颜色可调整,夜间模式 ⑥简洁,看看any.do就知道什么是简洁了,如穿着白纱美女的油画一般 ⑦输入法,输入法不能挡住输入框;回车可以跳转到下一个输入框 2、稳定性 ①网络,需要访问网络的程序,在网络不稳定的情况下,应能正常运行,不应出现意外退出和错误;如程序无法在该环境下运行,应提示用户 ②网络切换,同上 ③网络信号弱,同上 ④进程切换,在多进程切换中,应正常运行,并保持切换前页面,不应出现意外退出和错误 3、性能 ①程序进行某些功能时,不应使手机出现卡、顿等情况,视实际情况而定 4、安装 ①路径,可选择手机、SD卡

android开发学习笔记

Android开发学习笔记 by---- 三爷一、新建项目 Application Name: 应用程序名,即该应用的名称,日后在安卓市场上将显示该App名称,与项目无关。 Project Name:项目中的工程名(项目中的App名),注意,在项目中将使用该名称,该工程将被存放在下面命名的包下,命名时要注意规范。 Package Name:包名,格式为“com.自定义的包名.工程名”,其中包名自定义,但包名后的工程名必须和上面的Project Name一至。 Build SDK:选择android SDK的版本,建议选择1.6版本兼容范围广一点 Minimum Required SDK:该程序兼容的最低SDK版本,这里选择的版本必须跟上面选择的Build SDK版本一致。 Activity Name:第一个Activity的名称,随意命名,它将是程序的入口 Layout Name:为第一个Activity布局的xml文件名称,随意命名,建议与其对应的activity 名称有一定的关联性。 Title:上面设置的Activity的标题(这个在程序里都可以改) 二、项目文件夹说明 com.PackageName.ProjectName:该项目的文件夹,里面存放我们编写的源文件 gen:由ADT自动生成,其中包含有一个R.java的文件是用于声明res文件夹下的资源的句柄,程序将通过该文件来引用项目中的资源,该文件不要随意改动,。 Android 1.6:这里面是android的SDK包,程序中所有引用android的类都是从这个包里引用;这里的1.6为新建项目时选择的sdk版本号,这里的版本号会根据你新建项目时选择的版本号不同而不同。 bin:这个目录存放编译生成的android安装文件 assets:存放项目的资源,比如视频、音频、图片等较大的资源,注意该目录下的资源不会被生成句柄,所以只能通过路径来引用。

安卓开发学习笔记

1.avd:android virtual device 2.5554:模拟器端口号 3.ddms 观察线程thread 堆栈heap 、file explorer、emulator control(模拟打电话发短信) 4.Extras文件夹拓展工具 5.Adb.exe: android debug bridge 安卓调试桥 6.Adb常用指令:(配置环境变量) 1)adb devices:列出所有连接设备 2)Reset adb:重启adb调试桥 3)Adb kill-server:杀死adb调试桥 4)Adb start-server:启动adb调试桥 5)Netstat -ano:查看端口号 ----------------------------------------------------------------------------------------- 7.Platforms是系统文件 8.Assets是资产目录存放在该文件夹下面这些文件会被打包到应用程序的apk 9.Bin 编译后的文件目录 10.Gen自动生成的其下的R.java的内容也是通过修改其他文件内容而自动生成 11.Android.jar基于此jar包的开发 12.Project.properties 代表编译的版本可以修改 13.Libs 支持jar 包会被添加到Android dependence(依赖)目

录下 14.Res 资源目录 15.Drawable存放应用程序图标会自动生成一个id 在R文件里 1)H high 高分辨率 2)M middle 中分辨率 3)L low 低分辨率 4)X extra large 特大分辨率 5)Xx 超大分辨率 16. R文件的作用:自动编译生成res文件中的ID 17.Android manifest:应用程序的清单文件 程序的配置信息启动的图标应用程序名称包名版本号 -------------------------------------------------------------------------------------- 18.Android下软件安装的过程: 1)拷贝xxx.apk到/data/app/xxx-1.apk 2)在data/data目录下创建一个文件夹文件夹名称是当前应 用程序的包名。 3)软件卸载的过程是相反的 19.system/app下安装的是系统自带的应用 20.Windows下注册表是通过数据库实现;Android下的注册表是用xml文件实现

Android智能电视APP开发笔记(一)

Android智能电视APP开发笔记(一) 1缘起 以小米盒子为代表的OTT机顶盒、智能电视的快速普及,快速推动了Android技术在机顶盒、智能电视领域的普及。既然都是用的Android操作系统,那么从技术上来说应该是大同小异的,当然和手机APP的应用相比,电视端的APP开发应该有一些都有的特点需要关注,我相信这样的特点应该不会太多。 写这个笔记的缘起在于一个生活上的小小不便,因为儿子正在读小学,每天早上起来都需要听英语,学校发的磁带真的是不方便,老的磁带机相信很少有人用了,虽然也给他买了一个步步高的复读机,不过没用几天就被搁置了。于是我在网上搜了个APP,在手机上很好用,可以直接翻看课文,也可以朗读课文,翻到哪页就朗读哪页,如果不翻动,就自动往下读,做的还是相当人性化的,但是这样一个新的问题产生了,每天早上我的手机就被我儿子霸占了,接到音响上听英语了,我要看个朋友圈啊啥的,就不方便了。 刚好家中有个OTT机顶盒,可以安装APP,就想着把这个APP装到OTT机顶盒上,结果发现完全无法使用,界面不对了,遥控器也响应不了了,完全无法使用啊,结论就是手机APP和TV APP还是有些区别的,须要作些微调适配的。 咋整呢?重新给写一个TV APP吧,为了夺回我手机的控制权,好歹哥以前也是开发工程师啊。 2Win7虚拟机创建 2.1 VMware Workstation安装 直接把开发环境安装在自己电脑上感觉不是太好,一个影响系统运行速度,二是免不了要装了卸,卸了装,把电脑运行环境搞得乱七八糟。所以决定还是在虚拟机环境中玩。 虚拟机当然选行业老大VMware了,下载Vmware workstation进行安装。没想到这玩意都升级到11.1版本了,这个世界真的是变化快啊。 从官网下载后再安装:

第一行代码Android学习笔记完全版

第一行代码Android学习笔记 感谢《第一行代码》,感谢郭霖博主,拯救我于水火。之前看视频学习Android,自以为已经小成了。在网易工作的朋友问了我几个问题,我就懵逼了。然后,遇到了《第一行代码》,终于把我带进了Android的世界。好书,真的会醉人啊。 这是学习第二遍时的部分笔记,以备后用。 这是第二版,比第一版增加了一些常用的方法。 hujunjob 于北航 2015.04.02

目录 第一章Android系统 (6) 1.1 安卓系统架构 (6) 1.2 Android 项目中的资源 (6) 第二章Activity (6) 一、创建Activity步骤: (6) 二、采用Intent切换activity (7) 1、显式Intent (7) 2、隐式Intent (7) 3、隐式Intent的其他用法 (8) 三、Intent传递数据 (8) 1、向下一个activity传递数据 (8) 2、返回数据给上一个activity (8) 四、activity的生命周期 (9) 1、活动状态 (9) 2、activity生存期 (9) 3、activity被回收数据保存 (11) 五、activity的启动模式 (11) 六、activity最佳实践 (11) 1、知道当前页面是哪一个activity (11) 2、随时随地退出程序 (11) 3、给每个activity都添加一个合适的启动方法 (13) 第三章UI (13) 一、常用控件 (13) 1、TextView (13) 2、Button (13) 3、EditText (13) 4、ImageView (14) 5、ProgressBar (14) 6、AlertDialog (14) 7、ProgressDialog (15) 二、基本布局 (15) 1、LinearLayout (15) 2、RelativeLayout (15) 3、FrameLayout (15) 4、TableLayout (15) 5、GridLayout (16) 三、自定义控件 (16) 1、添加自定义标题布局(无操作的) (16) 2、创建自定义控件 (16) 四、ListView (17) 1、最简单的Adapter (17) 2、定制ListView界面 (18)

android学习笔记

1,android手势开发识别Gestrue开发 (https://www.doczj.com/doc/753497028.html,/tsdl2009/archive/2010/08/13/5810922.aspx) 经过了一段Android的学习,基本上了解了Android的基础知识。今天,我们来研究一下Android中特有的手势识别技术,即Gesture。首先,我从网上找了很多资料,具体归纳起来有2类:一类是触摸屏手势识别,另一类是输入法手势识别。 我们先来讨论一下第一类触摸屏手势识别,这个比较简单,就是利用触摸屏的Fling、Scroll等Gesture(手势)来操作屏幕,比如用Scroll手势在浏览器中滚屏,用Fling在阅读器中翻页等。在Android系统中,手势的识别是通过GestureDetector.OnGestureListener接口来实现的。下面通过我自己的一个动手实验来进行介绍。 首先,我们在Eclipse中创建一个工程,名称叫SignFilpDemo。然后,在src 中创建一个SignFilpDemo源文件。这个工程是基于Android1.6的。因为,在Android 1.6之前的版本中,需要开发者编写大量的代码才能实现某些更为复杂的Gestures功能。而在之后的版本SDk中嵌入标准的Gestures API库(Package: android.gesture),包括了所有与Gesture技术相关的操作:存储、加载、创建新Gestures和识别等。其工程结构如下: 图1 接着,我们知道Android的事件处理机制是基于Listener(监听器)来实现的,比如我们今天所说的触摸屏相关的事件,就是通过onTouchListener。因此,我们在源代码中要实现这个接口。另外,我们还要实现OnGestureListener接口,因为,那个手势的识别是通过GestureDetector.OnGestureListener接口来实现的。其中,onTouchEvent方法则是实现了OnTouchListener中的抽象方法,我们只要在这里添加逻辑代码即可在用户触摸屏幕时做出响应。在这里我们调用GestureDetector的onTouchEvent()方法,将捕捉到的MotionEvent交给GestureDetector 来分析是否有合适的callback函数来处理用户的手势。接下来,就是实现了以下6个抽象方法,其中最有用的当然是onFling()、onScroll()和onLongPress()了。下面介绍一下: (1)用户轻触触摸屏,由1个MotionEvent ACTION_DOWN触发,其源代码如下: public boolean onDown(MotionEvent e) { return false;

Android Alarm学习笔记

设置一个Alarm需要更新一下数据。 1. update alarms.db 2. update com.android.alarmclock_preferences.xml 3. update Settings.System.NEXT_ALARM_FORMATTED for status bar 4. set Kernel RTC alarm or send a message if no driver 具体的函数调用如下所示: com.android.alarmclock.AlarmClock.onCreate() -> SetAlarm.onPreferenceTreeClick() -> SetAlarm.saveAlarm() -> Alarm.setAlarm() -> Alarm.setNextAlert() -> Alarm.enableAlert(ALARM_ALERT_ACTION)/saveNextAlarm(Settings.System.NEXT _ALARM_FORMATTED) -> android.app.AlarmManager.set() -> AlarmManagerService.set() -> AlarmManagerService.setRepeating -> AlarmManagerService.setLocked() -> android.app.IAlarmManager.set() -> RTC.save()// /dev/alarms Alarm闹铃的函数调用如下所示: RTC (WAKEUP) -> AlarmReceiver.onReceive(ALARM_ALERT_ACTION) -> AlarmAlert.onCreate() -> AlarmAlertWakeLock.acquire()/KeyguardManager.newKeyguardLock().disableKeyg uard() -> AlarmKlaxon.postPlay() -> AlarmKlaxon.KillerCallback().onKilled() -> AlarmAlert.dismiss() -> AlarmAlertWakeLock.release()/KeyguardManager.newKeyguardLock().reenableKey guard() DeskClock App中的code block说明如下: Alarm是描述闹钟的抽象类。 AlarmAlert处理闹铃过程中系统相关的事件,继承AlarmAlertFullScreen。AlarmAlertFullScreen显示闹铃界面,并处理闹钟界面上到控件消息。AlarmAlertWakeLock提供控制wakelock接口。 AlarmClock闹钟界面,包括闹钟列表、数字时钟、option菜单。 AlarmKlaxon是一个服务,提供闹铃和震动功能,如果一个闹铃fire,前面一个闹铃已经在闹来,则取消前面那个,闹后来者。 AlarmPreference闹铃文件。 ContentProvider维护闹钟表,字段包括_id、hour、minutes、daysofweek、alarmtime、enabled、vibrate、message、alert。 Alarms提供了操作闹钟的接口,相当于AlarmManager。enableAlert()设置一个闹钟,用的是PendingIntent到方式计算时间。RTC的设置在enableAlert()的am.set(AlarmManager.RTC_WAKEUP, atTimeInMillis, sender); RTC_WAKEUP表示该Alarm如果在关机的情况下来到,则会自动开机闹铃。 DeskClock桌面时钟到activity。其中包括了系统时间、日期、电池及天气等信息,其中天气信息是判断是否存在提供天气信息的app后,从数据库中读取当前的天气信息来更新。也就

Android学习笔记

Android学习笔记(by quqi99 MSN: quqi99@https://www.doczj.com/doc/753497028.html,)Android platform是一个用于开发移动程序的软件包,它包括了操作系统、中间件及一些关键应用。开发者能使用android SDK为Android platform开发应用,这些应用使用JA V A 语言书写,运行在虚拟机Dalvik(一个专为手机程序开发的基于linux内核的JA V A虚拟机)。 https://www.doczj.com/doc/753497028.html,/wiki/index.php?title=%E7%BF%BB%E8%AF%91%E4%BB%BB %E5%8A%A1%E9%A2%86%E5%8F%96&printable=yes https://www.doczj.com/doc/753497028.html,/forumdisplay.php?fid=2 1 什么是Android 1.1 Android的特性 ?应用框架,让一些基础设施得以重用 ?Dalvik虚拟机,专为开发移动程序优化 ?集成的浏览器,(基于WebKit引擎) ?优化的图形库,(2D图形库以及基于OpenGL ES 1.0规范的3D图形库) ?SQLite,用于结构化数据的存储,是一个数据库 ?多媒体支持,支持多种音频,视频格式(MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF) ?GSM技术(依赖具体硬件) ?Bluetooth, EDGE, 3G, WiFi(依赖具体硬件) ?Camera, GPS, compass, accelerometer(依赖具体硬件) ?丰富的开发环境(DEBUG工具,内存及性能工具,Eclipse的插件等) 1.2 Android的架构 Android操作系统的模块如下:

android笔记

Android四大基本组件分别是: 1、活动(Activity); 2、服务(Service); 3、内容提供者(Content Provider); 4、广播接收器(BroadcastReceiver)。 Activity 答:应用程序中,一个Activity通常就是一个单独的屏幕,它上面可以显示一些控件也可以监听并处理用户的事件做出响应。一般所指的活动是用户界面。一个应用程序可能有一个或者以上的活动存在,每个活动也都会有自己的View。 Service 答:一个Service 是一段长生命周期的,没有用户界面的程序,可以用来开发如监控类程序。服务是在背景长时间运行的应用组件,不和用户直接进行互动。 BroadcastReceiver 答:广播接收器 Android四大组件的详细讲解 Android应用程序由一些零散的有联系的组件组;Activities(活动)应用程序的显示层;Services(服务)Android应用程序中;Content(内容)提供共享的数据存储;Intents(意图)简单的消息传递框架;BroadcastReceivers(广播接收器;Notifications(通知)用户通知的框架;一、Activity详解Act Android应用程序由一些零散的有联系的组件组成,通过一个工程manifest 绑定在一起。在manifest中,描述了每一个组件以及组件的作用,其中有6个组件,它们是Android应用程序的基石: Activities(活动)应用程序的显示层。每一个画面对应于你的应用程序,将会是Activity类的扩展。Activity使用Views去构建UI来显示信息和响应用户的行为。就桌面开发而言,一个Activity相当于一张Form。你在这章中将会学习到更多关于Activities。

Android应用开发_学习笔记

一、Android基础及UI 1、Android程序的组成 一个Android程序一般有以下4个部分组成: 1)Activity(活动) ①、一个应用程序是由一个或者多个Activity组成。 ②、一个Activity代表了可以和用户进行交互的可视化界面。 ③、Activity通过布局管理添加各种View组件。 ④、通过setContentView(int id)方法可以将视图呈现出来。 ⑤、Activity的生命周期 图1 Activity的生命周期图 2)Broadcast Receiver(广播接收器) ①、Broadcast Receiver负责对外部事件做出响应。 ②、Broadcast Receiver不生成UI,是不可见的。 ③、Broadcast Receiver需要在程序中进行注册。 ③、应用程序可以通过Context.sendBroadcast()将自己的intent广播出去。其他程序通过自身的Broadcast Receivers截获后进行时间处理。 3)Service(服务) ①、service运行在后台,负责处理一些用户看不到,并且会有持续时间的事情。比如下载数据,播放音乐等。 ②、service是跑在程序的主线程中,处理耗时的事件续。 ③、service没有用户界面所有用户实现的service必须继承系统的Service

类,并且在配置文件中进行注册。 4)Content Provider(内容管理器) ①、数据在Android当中是程序私有的。 ②、Content Provider提供了多个程序间数据交互的机制。 ③、Content Provider暴露出来一些标准的API来对数据进行操作: query(Uri, String[], String, String[], String) :通过关键字查询数据。 insert(Uri, ContentV alues) :将一组数据插入到指定的地方。 update(Uri, ContentValues, String, String[]) :更新数据。 delete(Uri, String, String[]) :删除数据。 2、AndroidManifest.xml文件组成 该文件主要声明Android应用程序的构成: ①、程序包的全局变量 ②、活动(Activities) ③、内容管理器(Content Providers) ④、服务(Services) ⑤、广播接收器(Broadcast Receivers) ⑥、请求安全授权(uses-permission) ⑦、声明安全授权(permission)

基于Android平台的课堂笔记APP设计与实现

基于Android平台的课堂笔记APP设计与实现课堂笔记是学生学习过程中不可忽视的重要环节,圈划、划线等记笔记的策略能够帮助学习者记忆和理解所学知识。在4G+移动互联网时代,基于Android 移动智能终端设备的移动学习凭借高效、便捷的特性备受青睐。如何将移动技术、移动学习的优势与课堂笔记策略有效融合,为学生更好地吸收课堂知识提供便捷的服务是本文研究的核心。首先,作者通过文献调研法,对已有的课堂笔记相关理论研究和课堂笔记APP开发的相关技术进行梳理、归纳,总结出记笔记是学习策略组成部分—认知策略的一种,有效的记录笔记能够促进学生的学习;有效的笔记行为有利于加深记忆和记忆的保持,知识的图片表达形式更易于记忆;课堂笔记是学习者知识管理中的构成要素。 同时,个人知识管理中的信息分析、评估、分享等都对课堂笔记策略有着借鉴与参考价值。其次,作者采用问卷调查法,选取移动学习应用较为广泛的大学生群体作为研究对象,以对大学生课堂笔记的现状、课堂笔记工具需求和存在的问题为调查目的。基于文献调研,从对课堂笔记的了解程度、课堂笔记策略、知识管理方式和课堂笔记工具使用情况等方面设计问卷,通过调研与数据分析,得出以下结果:(1)大多数学生在课堂中因为课件播放速度过快和记录速度过慢遗漏重要的笔记内容;(2)多数学生认为笔记策略中画圈、划线等符号标记策略较为实用;(3)近一半的学生会经常在记笔记过程中采用类似照相机等工具来辅助记录。最后,本文基于文献分析结论和问卷调查结果,从用户需求的角度出发,通过前期的功能需求、非功能需求分析,以大方简洁、易用实用、即用即拍、互动学习等为设计原则,设计出一款基于Android且包含拍照、涂鸦、圈划、查询和录音、学习札记等功能的课堂笔记APP。 本文详细描述了该APP的设计流程,包括前端分析、功能框架设计、交互界面设计。然后,作者通过采用JAVA、XML等程序语言,在Android Studio编译环境下实现课堂笔记APP的开发、测试与完善,并在文中描述了开发过程与重要功能模块。

android学习笔记--clip

初次接触到android的clip有以下两点疑问: 1.Clip(剪切)的时机 2.Clip中的Op的参数的意思。 通常咱们理解的clip(剪切),是对已经存在的图形进行clip的。但是,在android上是对canvas (画布)上进行clip的,要在画图之前对canvas进行clip,如果画图之后再对canvas进行clip不会影响到已经画好的图形。一定要记住clip是针对canvas而非图形。 接下来通过android自带的APIdemo Clipping例子详细讲述Clip中的Op的参数的意思。Android提供clipRect、clipPath和clipRegion剪切区域的API。 Op一共有DIFFERENCE,INTERSECT,UNION,XOR, REVERSE_DIFFERENCE, REPLACE六种选择。 例子: 1.在canvas上剪切从(0,0)到(60,60)的方块。下图蓝色区域加紫色区域。 2.在canvas上剪切从(40,40)到(100,100)的方块。下图橄榄色区域加紫色区域。 3.在canvas上剪切从(0,0)到(100,100)的方块。 先在第二方块上加上Op参数例如:canvas.clipRect(40, 40, 100, 100, Region.Op. DIFFERENCE); 首先,需要搞清楚Op参数针对的对象。接着了解其含义。 Op参数针对的对象是之前剪切的区域以及当前要剪切的区域。 在本例中涉及到区域是从(0,0)到(60,60)的方块和从(40,40)到(100,100)的方块。 那有哪些含义呢?就是表示当前要剪切的区域与之前剪切过的之间的关系。 DIFFERENCE:之前剪切过除去当前要剪切的区域(蓝色区域)。 INTERSECT:当前要剪切的区域在之前剪切过内部的部分(紫色区域)。 UNION:当前要剪切的区域加上之前剪切过内部的部分(蓝色区域+紫色区域+橄榄色区域)。XOR:异或,当前要剪切的区域与之前剪切过的进行异或。(蓝色区域+橄榄色区域)。REVERSE_DIFFERENCE:与DIFFERENCE相反,以当前要剪切的区域为参照物,当前要剪切的区域除去之前剪切过的区域(橄榄色区域); REPLACE:用当前要剪切的区域代替之前剪切过的区域。(橄榄色区域+紫色区域); 没带Op参数效果与INTERSECT的效果一样,两个区域的交集。

Android学习笔记整理

Android开发学习笔记 小魏 CQU

Android是Google于2007年11月05日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成。它采用软件堆层(Software Stack,又名软件叠层)的架构,主要分为三部分。 底层以Linux内核工作为基础,由C语言开发,只提供基本功能; 中间层包括函数库Library和虚拟机Virtual Machine,由C++开发。 最上层是各种应用软件,包括通话程序,短信程序等,应用软件则由各公司自行开发,以Java作为编写程序的一部分。 (https://www.doczj.com/doc/753497028.html,/index.php?title=Main_Page) 进行Android开发,首先要搭建开发环境。实验室为我们搭建的环境: JAVA JDK 1.5 (C:\Program Files\Java\jdk1.5.0_11) MyEclipse 6.5 ADT 0.9.7 (C:\android\ADT-0.9.7) Android SDK-windows 1.6 (C:\android\android-sdk-windows-1.6_r1) 进行Android开发需要安装Android SDK. (使用Android SDK Manager 工具进行安装。实验室的电脑可以找到Manager的位置C:\android\android-sdk-windows-1.6_r1\SDK Manager.exe)安装之后还应在IDE中进行一定的配置。(实验室MyEclipse6.5也帮我们都配置好了。可以打开MyEclipse->Windows->Android SDK and AVD Manager查看) Android开发系统主要集中在两种环境中,分别是基于Android SDK的开发和基于Android 源代码的开发。前者可以在Linux或者Windows两种环境中使用IDE完成,后者需要在Linux 环境中进行开发。 基于源代码Android的开发在获取所有源代码的基础上进行,可以开发Android应用程序,进行系统移植或者开发Android系统本身。

Android初学者学习笔记(自己整理)

An droid 笔记 使用Android和Eclipse ADT创建并运行应用程序 在An droid简介的开始部分,我将帮助您尽可能快地创建一个简单的An droid 应用程序。您将使用An droid 4.2 和Eclipse An droid Developme nt Tools (ADT) 插件来创建一个基于Java的Hello World 应用程序。 为An droid 建立开发环境的途径有两种。刚接触Eclipse 和An droid 的开发人员可以先下载ADT (Android Developer Tools) Bundle 。 ADT Bundle 捆绑了一个An droid SDK和一个Eclipse 版本,其中已经安装了ADT插件。这个程序包可帮助您快速、轻松地使用An droid 。 如果Eclipse 已经安装在台式机上并设置好,那么请手动下载并安装An droid SDK基础An droid SDK 包含一些可简化An droid 开发的系统工具,但它缺乏开发特定An droid版本所需的An droid库。为您的操作系统下载基础An droid SDK后,可以访问SDK安装目录的工具目录,并运行清单1中的An droid脚本。 清单 1.启动An droid SDK Ma nager ~/Developme nt/tools/a ndroid/a ndroid-sdk-mac_x86/tools$>./a ndroid 该脚本启动了An droid SDK Ma nager,您可以下载An droid 的各种版本和库,并创建模拟程序或虚拟设备实例。An droid SDKMa nager打开了一个窗口,其中显示一个很长的要下载的选项的列表,如图1所示。

Android移动应用开发学习笔记

1、透明Activity的实现 首先在Androidmanifest.xml中加上 再在res/values/colors.xml中加上 #7F000000 最后在styles.xml中添加以下代码 这样该Activity就为透明的了。 注:#7F000000表示颜色,其中前两位表示透明度(00—FF),后面六位表示颜色。

alert_dark_frame alert_light_frame arrow_down_float arrow_up_float bottom_bar btn_default btn_default_small btn_dialog btn_dropdown btn_minus btn_plus btn_radio btn_star btn_star_big_off btn_star_big_on button_onoff_indicator _off button_onoff_indicator_on checkbox_off_background checkbox_on_background dark_header dialog_frame divider_horizontal_bri ght divider_horizontal_dark divider_horizontal_dim_dar k

Android开发笔记(一百四十一)读取PPT和PDF文件

Android开发笔记(一百四十一)读取 PPT和PDF文件 读取ppt文件 读取纯文本 HSLFSlideShow类就是poi中专门用于解析幻灯片的工具类,每张幻灯片又分别由单独的HSLFSlide类处理,幻灯片中的具体图文内容则由HSLFTextParagraph和HSLFTextRun进行分辨。 下面是使用poi解析ppt文件(2003格式)的效果图: 不同版本的poi库在解析ppt的代码略有区别,下面是使用poi15读取ppt的代码:[java] view plain copy public static ArrayList readPPT(String path) { ArrayList contentArray = new ArrayList(); try { FileInputStream fis = new FileInputStream(new File(path)); HSLFSlideShow hslf = new HSLFSlideShow(fis); List slides = hslf.getSlides(); for (int i = 0; i < slides.size(); i++) { String content = "";

HSLFSlide item = slides.get(i); // 读取一张幻灯片的内容(包括标题) List> tps = item.getTextParagraphs(); for (int j = 0; j < tps.size(); j++) { List tps_row = tps.get(j); for (int k = 0; k < tps_row.size(); k++) { HSLFTextParagraph tps_item = tps_row.get(k); List trs = tps_item.getTextRuns(); for (int l = 0; l < https://www.doczj.com/doc/753497028.html,ize(); l++) { HSLFTextRun trs_item = trs.get(l); content = String.format("%s%s\n", content, trs_item.getRawText()); } } } contentArray.add(content); } } catch (Exception e) { e.printStackTrace(); } return contentArray; } 读取图文样式 poi方式只能有效读取ppt内部的文字信息,对于ppt内带的图片以及文字样式,便力有不逮了。在博文《Android开发笔记(一百四十)Word文件的读取与显示》中,提到可以解析docx内部的document.xml文件,从xml标记中获取图片信息与样式信息,然后把图文格式构造成html文件,最后由WebView网页视图加载显示html。对于pptx文件,也可以解析pptx内部的slide*.xml幻灯片文件,采用跟解析docx类似的做法,把解析得到的图片与样式数据写入到html文件,从而曲线实现了pptx文件的读取功能。 下面是以HTML格式显示pptx文件的效果图:

相关主题
文本预览
相关文档 最新文档