原创内容,转载注明出处

这个笔记是看视频总结加自己的理解,可能会有差错或不对的地方,欢迎指正,大家共同进步嘛.哈哈哈.另外就是代码片段我直接截图上传了.不便之处请多见谅.如果对安卓开发有兴趣,可以加我微信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
在res目录下新建一个xml文件,resource type是values,新建一个<style>标签,在这个标签里面添加多个<item>标签来定义自己想要的效果,最后在activity_main.xml文件的ui空间里添加style="@style/文件名"就可以应用自己定义好的样式了
主题:
用来控制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

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

  1. 【算法笔记】极客时间 算法面试通关40讲 笔记  覃超

    [算法笔记]极客时间 算法面试通关40讲 覃超 [算法笔记]极客时间 算法面试通关40讲 覃超 相关链接 在leetcode 上的题号 数组.链表: (堆)栈stack.队列queue 优先队列 哈希 ...

  2. 极客学院安卓视频零散笔记总结

    Android基础知识 ---------------------------------------------------------------------------------------- ...

  3. 日报2015/10/26(极客学院安卓视频学习)

    Android 广播接收器 BroadcastReceiver 创建了广播接收器后,可以看到,关键的方法在于 onReceive(Context context, Intent intent) 方法, ...

  4. Python简单网页爬虫——极客学院视频自动下载

    一.需求背景 最近正好在研究Python,看了菜鸟教程上的基本教程,然后又再看极客学院的教学视频,向实战进军. 极客学院的视频是需要年费会员才能下载的,客户端倒是可以批量下载,但是下载之后,没有目录结 ...

  5. 极客学院-Html5个人笔记总结

    第一部分,HTML5基础 1,什么是HTML5?  (Hyper Text Markup Language) 超文本标记语言,用于描述网页的一种语言.  2,HTML5相关知识?  HTML  XHT ...

  6. 【极客学院】-python学习笔记-2-Python特色,学习路线

    极客学院课程地址:http://www.jikexueyuan.com/course/594.html Python功能强大: Python学习路线: Python的三大优点: 简单,功能强大,面向对 ...

  7. 极客学院web前端学习笔记 (一)概况

    终于到暑假啦!暑假开始重新(x)学习web前端,其实html和css早已有所接触,但是js接触较少,直接原因是下学期大概要给学弟学妹们解答一些前端基础相关的问题,所以希望在暑假好好整理归纳一下知识体系 ...

  8. 【极客学院】-python学习笔记-Python快速入门(面向对象-引入外部文件-Web2Py创建网站)

    极客学院的课程,感觉很有意思,每节课都很短,但是很干货,我喜欢这个节奏 http://www.jikexueyuan.com/course/203.html 课程背景: Python语言功能强大, 能 ...

  9. python极客学院爬虫_学习极客学院多线程爬虫课程的收获

    昨天开始了极客学院<XPath与多线程爬虫>课程的学习,主要涉及到XPath和requests的使用,在测试过程中出现了很多问题,经过不断摸索以及前辈们的帮助,现将经验总结如下: 1. P ...

最新文章

  1. win10系统上使用utorrent的问题
  2. html 页面过度效果,HTML页面过渡效果大全
  3. python实现链表反转_反转链表(Python)
  4. php foreach循环中unset后续的键值问题
  5. Python String 方法详解
  6. ASCII码、HEX、字符、BCD 等等 基础知识思考
  7. java 将json转成utf 8_解决JSON.stringify()自动将中文转译成unicode的方法
  8. Java 调用 Impala - JDBC 调用Impala
  9. mysql批量查询并替换或者更新某个字段
  10. Android控制文字水平间距android:letterSpacing
  11. python dataframe 重命名列_Python-重命名pandas列
  12. 模板建网站-开源工具
  13. IP地址库Linux系统从APNIC获取地址库
  14. krohne流量计接线图_电磁流量计接线方式
  15. oracle设置默认角色,oracle的用户和角色管理
  16. 实现原理 扫描枪_条码扫描枪的原理
  17. 萨缪尔·莫尔斯:电报之父的传奇人生
  18. 多款比较好用又免费的设计工具
  19. 地理坐标系与投影坐标系区别与联系
  20. 归并排序实现思想及代码模板

热门文章

  1. 魔兽争霸III:冰封王座 1.17版问世
  2. (转)腾讯微信引发的产品建设经验
  3. 编写C语言程序:输入一个n,计算从1到n的和
  4. vas use record
  5. oracle是做什么用的,可以形容下Oracle有什么用,是干什么的吗?
  6. iOS启动速度优化实践分享
  7. python中幂运算_python的幂运算
  8. Today今天便利店的梦想:准独角兽的雄心与挑战 1
  9. 手把手教如何搭建一个百度网盘目录站点【保姆级】
  10. ubuntu免费画图工具