安卓学习笔记汇总----极客学院安卓教学视频观看所做的笔记和自己的理解

原创内容,转载注明出处

这个笔记是看视频总结加自己的理解,可能会有差错或不对的地方,欢迎指正,大家共同进步嘛.哈哈哈.另外就是代码片段我直接截图上传了.不便之处请多见谅.如果对安卓开发有兴趣,可以加我微信13169638890,大家共同探讨遇到的难题


activity


1.概念:类似于windows的窗口,可以和用户交互,但是安卓是没有办法放大缩小的
2.三种状态:运行,暂停,停止
3.生命周期:
          



注意activity处于onPause和onStop状态时再次启用activity所运行的方法的不同

4.activity的操作 
4.1要想改变activity的显示效果,可以在mainifest.xml的activity标签里添加如下代码,这个就是修改MainActivity的显示效果的代码,显示效果为没有状态栏,全屏且透明.


4.2从一个activity跳转到另一个activity:
定义好,两个activity的布局文件并且让这两个类都继承Activity,
在每个类的onCreate()方法中调用setContentView()方法绑定各自的布局文件
在监听器中,在第一个activity定义一个intent,然后调用startActivity()方法,把intent作为参数传进去就可以了

4.3如何关闭Activity:在监听器中使用finish()方法

4.4Activity间传递信息:

向第二个Activity传递信息:
第一种方法:
在监听器中添加如下代码:

注:putExtra()有不同的参数,可以传递不同的数据类型,具体查看API
然后在接收的Activity中的监听器里添加如下代码:


第二种方法:添加资源树bundle,即在第一个Activity里添加如下代码:

在第二个Activity中添加如下代码:




得到第二个Activity传回的信息:在第一个Activity中调用onActivityResult()方法,在第二个activity中调用setResult()方法.具体实现还有其他的代码,可百度一下




5.service服务
概念:在后台运行的程序
启动和停止service:定义一个新的类继承service;配置androidmanifest.xml,添加一个service的标签;在MainActivity中定义一个intent,然后在主类的监听器中调用startService()和stopService()方法来开始和停止service;在第二个activity中实现两个方法分别是onCreate 和onDestroy();

注:service的生命周期只有创建和销毁两种状态

绑定service和解绑service:让第一个类实现ServiceConnection,然后实现onServiceConnected()和onServiceDisconnected() ,上述两个方法中只有第一个比较常用,第二个一般是服务崩溃的时候才会使用的;接着在监听器调用bindService()和unbingService()这两个方法即可
注:1.如果同时启动并且绑定了service,要想结束service,必须先解绑再停止service
2.bindservice和startservice的区别:startservice之后如果关闭该activity,服务不会被停止,仍在后台运行,而bindservice则关闭之后service也会被关闭
3.bindservice和unbindservice的用途:侦听服务内部的一些状态,或者和服务进行通信.而startservice和stopservice则只能实现开始和停止服务而已

service中的绑定和解绑有一定的难度.有时间深入研究


6.broadcast receiver
概念:用于组件和组件之间进行通信的机制,例如不同程序的通信,程序内部的通信,比如一个程序里面的电量低的提示,操作系统启动的提示,短信的提示,具有通信数据量少,频率低,运行效率低的特点,通信频繁的需求不能用此组件实现


声明:新建一个类MyBC,扩展自broadcast receiver,一旦广播接收器接收到消息就会执行onreceive()
       在androidmanifest.xml文件里注册一个receiver
          在mainactivity添加按钮触发事件,代码如下:sendBroadcast(new Intent(MainActivity.this,MyBC));

如何动态的注册和注销广播接收器:
注册:
1.在mainactivtiy添加两个按钮分别为注册和注销按钮
2.在注册按钮中使用RegisterReceiver(mybc,new   Intentfilter(MyBC.ACTION) )       //Intentfil是将mybc这个类注册到一个地址上,以后如果有程序往这个地址发送信息,broadcast Receiver都是可以侦听得到的
3.在MyBC这个类里定义一个Action作为参数传给Intentfilter()

 注销:
在注销按钮里添加事件:unregisterReceiver(mybc);即可  


注:eclipse注释代码快捷键:选中代码,按ctrl+/
    向上复制和向下复制快捷键:ctrl+alt+向上键/向下键


ContentProvider

作用:用于应用程序之间共享数据,例如读取联系人数据,也可以把自己的程序的数据共享给别人,涉及到URI,URI即每个程序公开给其他程序使用的类似于地址的东西

用法:
1.添加权限
2.添加监听事件,具体代码如下:




Intent

Intent对象的介绍:
用来指定我们要启动的目标组件的

IntentFilter:用来表述基本组件所在的地址,比如指定activity的地址类似于url,对Intent进行过滤

使用:
第一种方式(显式Intent):

第二种方式(隐式Intent):

action方法:可以指向broadcast receiver或者contentprovider这样的组件



使用实例:在某一个Activity点击某个按钮,拨打某一个指定的电话;点击某个按钮,然后跳转到某一网页
注:eclipse快捷键,选择要移动的代码,按alt+向上键/向下键就可以移动了



布局

1.FrameLayout:子元素没有位置这一概念,运行的很快
2.LinearLayout:一个挨一个进行排列,分垂直和水平两种,在eclipse有一个按钮是可以选择垂直和水平排列的,weight属性:对父级容器的分割比例,即你可以指定一个按钮在一排三个按钮中占的比例是多大,因此可以适应多分辨率屏幕,如下图:

RelativeLayout:eclipse默认的布局,就是一个组件相对于另一个组件,也可以相对于父级容器
4.TableLayout:类似于网页的table布局
5.AbsoluteLayout



listview

注:vertical:垂直    horizontal:水平

1.listView结合Arrayadapter的使用,代码如下:

ArrayAdapter的第二个参数可以自己定义listview的效果,也可以使用系统默认的


2.listView和baseAdapter结合使用(重点和难点):呈现自定义的列表项效果
baseAdapter是一个抽象类,需要实现它其中的所有方法
呈现图标可以使用imageView



RadioGroup

注:组织导入快捷键:ctrl+shift+o


应用程序的打包发布

1.去掉调试信息
2.考虑为程序添加EULA(End User License Agreement),这个不一定需要
3.为程序设定自定义图标
4.为程序签名
5.发布电子市场

必须为程序签名才能运行,android系统会根据签名证书辨别开发者


应用程序安装到真机上:adb工具的使用

中国的应用程序只能发布到第三方的电子市场,例如优亿市场,腾讯应用宝



后退事件的处理

方法:onBackPressed(),在这个方法里定义自己想要的后退键按下的效果


资源访问之字符串资源

在string.xml文件中创建的字符串资源会在r.java文件中自动生成ID,然后可以通过以下代码来得到该字符串:word为在string.xml文件定义的字符串名称


资源访问之国际化

在value文件下下新建一个xml文件,命名为string.xml,然后点击next(注:不能点finish),然后选择languge,再点击箭头-->在最左侧选择zh,即代表汉语的意思,ch则代表大陆简体字.然后通过生成的文件就可以添加中文字符串或英文字符串,在虚拟机上设置语言时就可以根据设置的语言调用不同的字符串文件从而显示不同的语言


资源访问之颜色资源

颜色有两种表示方式,分别为argb(#FFFF0000)和rgb(#FF0000)

方法:在res文件夹下创建一个新的xml文件,resouce type 为value,然后在里面定义自己要用的颜色,如图:

接着就可以在需要调用这些颜色地方用访问它了,比如在mainactivity.xml里面如下代码就可以访问到定义好的颜色,其中的color/red代表的是自己定义的color.xml文件里color标签中的名为red的颜色



资源访问之尺寸资源

dp像素密度
pt:文字的磅数
mm:毫米
in:英寸
sp:缩放的比例像素,主要用来描述文字的


使用方法:与color资源的使用方法类似


数组资源

使用方法与上面的方法类似,但是值得注意的是listView的一下属性可以访问到我们定义好的数组



drawable资源



drawable资源可以访问到图片和图标,所以可以用来自定义图标和图片,具体方法与上面的类似.

在button标签下使用backround属性可以自定义按钮的图片

快捷键:ctrl+f11   翻转模拟器屏幕

实现按钮的九宫格缩放的工具:在sdk-->tools-->draw9patch.双击运行即可对按钮图片进行缩放,然后按ctrl+s保存,扩展名改为.9.png   所谓九宫格缩放,就是拖动四条线选中一个区域,在这个区域内手机可以对其进行缩放,但是区域外的就不可以进行缩放

实现点击按钮更改按钮的背景图片,新建一个xml文件,type为value,root element为selector,然后在这个文件里实现一下代码:







菜单资源

res-->menu-->main.xml在这里可以修改添加菜单项
给菜单项添加监听事件:重写onOptionsItemSelected()方法,switch(item.getItemID())


样式与资源

样式:
所谓样式就是类似于css


主题:
用来控制application或者是activity的,用法与样式的使用差不多


xml原始数据资源
在res目录下创建一个新的文件夹,在此文件里创建一个新的文件,后缀名为.xml(注意,不是xml文件),然后在这个文件夹里定义自己的xml内容.
在activity里用XMLResourceParser里面的一些方法来解析自己定义的xml数据,例如getResource()





assets资源
在assets目录下的资源是不参与编译的,这个与res目录下的文件不同.
在这个目录下新建一个文件,然后在里面定义数据,然后在activity里使用getAssets()的一些方法读取这些资源



数据存储

SharedPreference:用来存储应用程序配置信息的方式.比如配置一个应用程序是否开机启动,一个控件是否被选中,这种方式以键值对的方式存储的,读取速度快,实质上也是一种内部存储

getSharePreferences

内部存储:存到手机内存,读取速度快,定义如下两个方法分别是保存输入的text,和读取保存的text



外部存储:存到sd卡
首先是添加权限

然后:以下代码是在sd卡创建一个data.txt的文件,然后往里面写"hello eoe"


以下代码是读取上面创建的文件的内容并显示:

sqlite:关系型数据库

新建类扩展自SQLiteOpenHelper,(注:onUpgrade()方法是对数据库进行升级)

1.db.execSQL()   //在括号里面吗添加sqlite语句,执行创建数据库,如下图:

2.在main_activity里添加如下代码插入数据:


3.在mainactivity添加如下代码进行读取已经插入的数据:


4.如何将数据库查询的数据与listView绑定:
1.让mainactivity扩展至listActivity
2.添加一个listview布局:

3.在layout目录下新建一个xml文件,扩展自linearlayout,然后添加两个textview
4.添加simpleAdapter:






contentprovider也可以实现上面的效果





android支持的媒体格式
 SoundPool只能用来播放比较小的音效,而不能用来播放很大的歌曲的文件,主代码如下:





MediaPlayer播放声音

使用的类为MediaPlayer,可以用于播放比较大的音频文件或者是视频

播放视频所用到涉及到布局文件的类为surfaceView和SurfaceHolder


使用VideoView播放视频
主要代码如下:


camera

如何调用摄像头:
1.SurfaceView呈现摄像头的效果


2.添加使用摄像头的权限

3.在mainActivity中调用摄像头

注:camera.setDisplayOrientation(90)是将摄像头翻转90读,变成直立的摄像头



如何使用摄像头进行拍照,在另一个Activity中呈现拍摄的照片:
完成上述步骤,首先添加使用外部存储的权限,然后在mainActivity中实现下面这一方法:

在mainActivity中的按钮添加监听事件:


]
新建一个avtivity:


使用系统照相机进行拍照(重难点)
1.添加外部存储权限:

2.重写onActivityResult方法 :

3.添加监听事件:


MediaRecord录音
1.添加外部存储权限
2.开始录音

3.停止录音



radioGroup
1.将主类mainActivity改成扩展自ListActivity
2.新建一个数据列表类ListCellData



CheckBox








































































































































评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值