Android高级编程笔记
Android学习笔记

start是用来让动画从开头开始播放的。
如果动画设置了一个大于0的播放延迟(startDelay),那么调用该方法后还需要等到延迟的时间过去才回开始播放。
停止动画:end方法或cancel方法来停止一个播放着的动画。
在两种方式中动画都会终止并且只有再次调用start方法才会重新开始播放。
两者的区别则在于停止后动画所在的状态,1)cancel方法来停止动画后,动画只是停止了它的时间轴,动画的状态会停在一个中间态(intermediate state)。
2)end 方法来停止一个动画,那么动画会直接快进到该动画最后一帧并且停止,所有的对象都会保持在动画最终结束后的状态。
在Kitkat 中增加的没有怎么被大家关注到的新API则是带来了动画可以暂停和恢复的能力。
在那之前,一个动画如果被取消并且停留在当前的中间态,此时你用start 方法去重启动画,动画只会从一开始重新播放。
现在,你则可以调用pause方法来暂停当前播放中的动画,pause也会有和cancel 方法一样的功效让动画停留在中间态,但是当你使用resume 方法去恢复这个动画的时候,动画会从这个状态继续播放下去。
这个方法顾名思义是用来让动画从开头开始播放的。
如果动画设置了一个大于0的播放延迟(startDelay),那么调用该方法后还需要等到延迟的时间过去才回开始播放。
我们有两种停止动画的方法,你可以用end方法抑或cancel方法来停止一个播放着的动画。
在两种方式中动画都会终止并且只有再次调用start方法才会重新开始播放。
两者的区别则在于停止后动画所在的状态,当你使用cancel方法来停止动画后,动画只是停止了它的时间轴,动画的状态会停在一个中间态(intermediatestate)。
如果通过end 方法来停止一个动画,那么动画会直接快进到该动画最后一帧并且停止,所有的对象都会保持在动画最终结束后的状态。
在Kitkat 中增加的没有怎么被大家关注到的新API则是带来了动画可以暂停和恢复的能力。
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:存放项目的资源,比如视频、音频、图片等较大的资源,注意该目录下的资源不会被生成句柄,所以只能通过路径来引用。
res:存放项目的资源,比如图标、图片、音频等,该目录下的资源会被R.java文件自动生成句柄以方便程序引用。
Android程序开发学习笔记(手电筒软件设计)

Android 开发简介简介黑莓和iPhone 都提供了受欢迎的、高容量的移动平台,但是却分别针对两个不同的消费群体。
黑莓是企业业务用户的不二选择。
但是,作为一种消费设备,它在易用性和“新奇特性”方面难以和iPhone 抗衡。
Android 则是一个年轻的、有待开发的平台,它有潜力同时涵盖移动电话的两个不同消费群体,甚至可能缩小工作和娱乐之间的差别如今,很多基于网络或有网络支持的设备都运行某种Linux 内核。
这是一种可靠的平台:可经济有效地进行部署和提供支持,并且可直接作为面向部署的良好的设计方法。
这些设备的UI 通常是基于HTML 的,可通过PC 或Mac 浏览器查看。
但并不是每个设备都需要通过一个常规的计算设备来控制。
想象一下传统的家用电器,例如电炉、微波炉或面包机。
如果您的家用电器由Android 控制,并且有一个彩色触摸屏,会怎么样?如果电炉上有一个Android UI,那么操控者甚至可以烹饪点什么东西。
在本文中,了解Android 平台,以及如何将它用于移动和非移动应用程序。
安装Android SDK,并构建一个简单的应用程序。
Android 简史Android 平台是Open Handset Alliance 的成果,Open Handset Alliance 组织由一群共同致力于构建更好的移动电话的公司组成。
这个组织由Google 领导,包括移动运营商、手持设备制造商、零部件制造商、软件解决方案和平台提供商以及市场营销公司。
从软件开发的观点看,Android 正处在开源领域的中心位置。
市场上第一款支持Android 的手机是由HTC 制造并由T-Mobile 供应的G1。
这款设备从设想到推出花了大约一年的时间,惟一可用的软件开发工具是一些实行增量改进的SDK 发行版。
随着G1 发行日的临近,Android 团队发布了SDK V1.0,用于这个新平台的应用程序也浮出水面。
为了鼓励创新,Google 举办了两届“Android Developer Challenges”,为优胜的参赛作品提供数百万美金的奖励。
Android学习笔记

Android学习笔记Android学习笔记-常用的一些源码,防止忘记了。
1.长点击控件菜单,即我们常说的右键菜单,不过好像ContextMenu不支持ICON的,所以即使在源码里面可以使用setIcon函数,但是还是不会有效果的。
一般有下面三个步骤:// 通常在onCreate函数中注册一个控件,btn为需要弹出ContextMenu的控件this.registerForContextMenu(btn);///////////////////////////////////////////////////////////////////////////////// 下面函数是创建ContextMenu的,v是被点击的控件// 根据v进行判断可以对不同的控件,创建不同的ContextMenupublic void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo)///////////////////////////////////////////////////////////////////////////////// 下面函数是响应ContextMenu点击事情的。
public boolean onContextItemSelected(MenuItem item)2. Toast显示信息,可以方便的来输出信息Toast.makeText(this, "Info", Toast.LENGTH_LONG).show();3. 关于MENU的操作有两个比较重要的了,函数原型:public abstract MenuItem add (int groupId, int itemId, int order, CharSequence title);public abstract SubMenu addSubMenu (CharSequence title);一般的函数有:menu.setHeaderTitle("MenuTitle");menu.setHeaderIcon(R.drawable.icon);menu.add(0, 0, 0, "item0").setIcon(R.drawable.icon);menu.add(0, 1, 1, "item1");/////////////////////////////////////////////////////////////////////////////// SubMenu sub = menu.addSubMenu("SubMenu");sub.add(0, 5, 5, "item5");sub.add(0, 6, 6, "item6");4.获取屏幕的分辨率isplayMetrics dm = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(dm); dm.widthPixelsdm.heightPixels5.显示POPUP对话框,类似于Windows的MessageBox函数,不过这个要比MessageBox强大多了,,,可以设置单选或者多选项,以及其响应,有两种方法可以一:实现Activity的onCreateDialog函数。
Android学习笔记

Android学习笔记(by quqi99 MSN: quqi99@)Android platform是一个用于开发移动程序的软件包,它包括了操作系统、中间件及一些关键应用。
开发者能使用android SDK为Android platform开发应用,这些应用使用JA VA语言书写,运行在虚拟机Dalvik(一个专为手机程序开发的基于linux内核的JA VA虚拟机)。
1 什么是Android1.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已集成了一些应用,如邮件客户端,SMS程序,日历,地图,浏览器等应用框架:程序库:例行程序Linux内核2 Andvoid起步2.1 开发环境配置使用Eclipse + Android Development Tools (ADT)插件。
在Help> Software Updates> Find and Install....中键入更新地址:https:///android/eclipse/2.2 运行第一个Andvoid程序使用Eclipse插件1、建立的工程类型为:Andvoid Project2、建立Launch Configuration. Run > Open Run Dialog... or Run > Open Debug Dialog命令行运行程序1、创建工程activityCreator .ActivityName2、编译。
安卓高级开发-下-笔记(共17周)第十四周

第四章管理Android系统桌面第一节管理壁纸初识Android壁纸在Android中,壁纸分为静态与动态两种。
静态壁纸是一张图片,而动态壁纸则以动画为表现形式,或者可以对用户的操作作出反应。
这两种形式看似差异很大,其实二者的本质是统一的。
它们都以一个Service的形式运行在系统后台,并在一个类型为TYPE_WALLPAPER 的窗口上绘制内容。
➢Android壁纸的实现与管理分为三个层次:⏹WallpaperService与Engine。
同SystemUI一样,壁纸运行在一个Android服务之中,这个服务的名字叫做WallpaperService。
当用户选择了一个壁纸之后,此壁纸所对应的WallpaperService便会启动并开始进行壁纸的绘制工作,因此继承并定制WallpaperService是开发者进行壁纸开发的第一步。
Engine是WallpaperService中的一个内部类,实现了壁纸窗口的创建以及Surface的维护工作。
另外,Engine提供了可供子类重写的一系列回调,用于通知壁纸开发者关于壁纸的生命周期、Surface状态的变化以及对用户的输入事件进行响应。
可以说,Engine类是壁纸实现的核心所在。
壁纸开发者需要继承Engine类,并重写其提供的回调以完成壁纸的开发。
这一层次的内容主要体现了壁纸的实现原理。
⏹WallpaperManagerService,这个系统服务用于管理壁纸的运行与切换,并通过WallpaperManager类向外界提供操作壁纸的接口。
当通过WallpaperManagaer的接口进行壁纸的切换时,WallpaperManagerService会取消当前壁纸的WallpaperService的绑定,并启动新壁纸的WallpaperService。
另外,Engine类进行窗口创建时所使用的窗口令牌也是由WallpaperManagerService提供的。
android学习笔记(一)

android:padding 指定控件的内边距
android:singleLine 如果设置为true,则显示内容在同一行当中进行显示 -->
第三节 表格布局
<?xml verion="1.0 encoding="utf-8"?> //线性布局 encoding="utf-8" 解码方式,适合中文
<TableLayout xmlns:android="/apk/res/android"
第一章
第一节
Activity
每新建一个Activity,都必须在AndroidMainifest.xml注册。
<activity android:.name_Activity android:label="@string/...">
Intent
Intent对象包含的几组信息
name_intent.putExra("name_keyvalue","value") //这里设置一个键值对,键名为"name_keyvalue",值为"value"
获得键值对
Intent name_intent = getIntent(); //调用getIntent()方法,取的传进来的Intent对象name_intent,
android:layout_centerVertical //如果值为真,该控件将被至于垂直方向的中央
பைடு நூலகம்
android:layout_margin="..." // 外边距
android笔记-部分

@、创建Activity的要点1、一个Activity是一个类,并且这个类要继承Activity2、需要复写onCreate()方法3、每一个Activity都需要在AndroidManifest.xml文件中进行配置,如果一个Activity配置了<intent-filter />的MAIN属性,则这个Activity就是启动时默认执行的Activity4、为Activity添加必要的控件Activity可以理解为与用户交互的接口,以及控件的容器@、Intent1、一个Intent对象包含了一组信息:a、Component name 组件名,如另一个Activityb、Action 动作:如newIntent(Intent.ACTION_SENDTO,uri) 中的Intent.ACTION_SENDTO 指发短信的服务c、Data 传送的数据,如上面的Uri uri =Uri.parse(“smsto://77677888”);d、Categorye、Extras 额外的信息,是类似map的键值对f、Flags@、Menu控件的添加方法:需要覆写Activity的onCreateOptionsMenu(Menu menu){ }方法。
该方法其实是一个回调方法。
在方法内部操作传入的menu就Ok例:public boolean onCreagteOptionsMenu(Menu menu){menu.add(0,1,1,R.string.exit);menu.add(0,2,2,R.string.about);return super.onCreateOptionsMenu(menu);} //该函数产生菜单界面监听菜单的事件,当点击菜单按钮时,会调用该函数,传入该菜单项的引用public Boolean onOptionsItemSeleted(MenuItem item){if(item.getItemId() ==1){//item是添加时add方法的第二个参数finish();//退出}}1、android的可执行文件 .dex;android上的安装文件 .apk;android 使用了自己的dalvik而不是sun的JVM,JVM是基于栈,而dalvik 是基于寄存器。