Intent 能够理解为信使

由Intent来协助完毕android各个组件之间的通讯。

感觉基础薄弱就又复习了一遍基础知识,整理了一遍!

gen 保存自己主动生成的R资源目录

gen->com.android.helloworld.activity 包名称

R.java 项目自己主动生成的资源索引类

Android 2.3.3->android.jar Android SDK Jar 文件

assets 保存原始资源的目录

res 资源目录

drawable 保存图片等资源目录

drawable-icon.png 图标文件

layout 界面布局文件

layout->main.xml 界面布局文件

values 简单值配置目录

values->strings.xml 字符串配置文件

AndroidMainfest.xml Android配置清单文件

default.xml 属性文件

pt:是屏幕的物理尺寸,大小为1英寸的1/72.

android:textScaleX 设置文字之间间隔。默觉得1.0f

android:textColorLink 文字连接的颜色

android:textColorHint 设置提示信息文字的颜色,默觉得灰色。

与hint一起使用。

android:textColorHighlight: 被选中文字的底色,默觉得蓝色。

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

android:shadowDx: 设置阴影横坐标的起始位置。

android:shadowDy:设置阴影纵坐标的起始位置。

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

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

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

android:password 以密码的形式。一小数点的形式显示。

android:ems 设置textview的宽度为N个字符的宽度。当与minEms和maxEms同一时候使用时覆盖ems选项。

android:marqueeRepeatLimit 在ellipsize属性为marquee的时候,设置跑马灯反复滚动的次数。当设置为marquee_forever时,表示一直反复。

android:bufferType 指定getText() 方式取得的文本类别。

一个android应用程序由四部分组成:

1.activity

2.Intent Receiver

3.Service

4.Content Provider

1.一个activity通常在应用程序中是一个单独的屏幕。每个activity是被实现作为一个继承于Activity基类的单独的类。class 将要 显示一个由view和响应事件组成的用户界面。

多数应用程序由多个屏幕组成。

比如:一个文本消息发送程序可能有一个显示要发送信息的联系人列表的屏幕,有一个给选中的联系人编辑短信的屏幕,而且另外的屏幕显示曾经信息或是更改设置。每个这些屏幕应该作为一个Activity被实现。移动到另外的屏幕上是通过启动一个新的Activity来完毕的。

因为一些原因,一个Activity可能会向先前的Activity返回一个值–比如:一个让用户选择一个Photo的Activity将会返回选中的photo到caller应用程序上。

当一个新的屏幕开启,先前的屏幕被暂停而且压入历史堆栈。

用户能够向后导航返回到在历史记录中先前打开的屏幕。当它们遗留不恰当时,屏幕也能够选择从历史堆栈中删除。android为每个从Home屏幕上执行的每个应用程序保留历史堆栈。

2.Intent 和 Intent Filter

android使用一个名叫Intent的特殊类来让应用程序从一个屏幕移动到还有一个屏幕。Intent描写叙述一个应用程序的意图。

Intent数据结构的两个重要的部分是:要对应的action和data。典型的action值是MAIN(应用程序的入口),VIEW,PICK,EDIT等等。DATA表示成一个统一资源定界符(URI),比如:要在浏览器中看一个站点,你将创建一个带偶VIEw action的Intent 和设置了站点URI的data。

Android应用程序基本功能单元式Activity 一个android.app.Activity类的物件(Object)。

被自己的应用程序编译的资源能够不用包套件名 直接

R.resource_type.resource_name就能够引用。

Android包括了一些标准资源,比如,屏幕风格和按钮背景。为了将这些资源引用到代码中。必须用android来表述它们。android.R.drawable.button_background

UI – java 方式跳过了~~~

在Android中调试不能用System.out.println(…)来做,

Android提供了很多强劲的调试特性—LogCat

LogCat 是DDMS(Dalvik 调试监视器服务)的一部分。它提供了一个收集和查看系统调试输出的机制。来自不用应用程序的Log和系统部分被收集到能够查看和过滤的LogCat中。

V 具体信息

D 调试

I 信息

W 警告

E 错误

通过Intent能够进行Activity的跳转。下边是Activity跳转的代码,这里加红色有两个Activity。一个是Activity A。还有一个是Activity B,代码例如以下:

Intent in = new Intent(A.this,B.class);

startActivity(in);

通过执行这两句代码,就能够实现从Activity A跳转到

Activity B。

与Intent有关系的一个类叫Intent Filters 假设Intent是一个有效请求。Intent Filters则用于描写叙述一个Activity(或者Intent Receiver)能够操作哪些Intent。一个 Activity假设要显示一个人的联系方式时,须要声明一个Intent Filters ,这个Intent Filters 要知道怎么去处理VIEW动作和表示一个人的URI。Intent Filters 一般在AndroidManifest.xml中定义。

能够使用BroadcastReceiver 来让应用对一个外部的事件做出响应。

BroadcastReceiver 不能生成UI。也就是说对于用户来说不是透明的。用户是看不到的。BroadcastReceiver 通过NotificationManager 来通知用户这些事情发生了!BroadcastReceiver 既能够在AndroidManifest.xml中注冊,也能够在执行的代码中使用Context.registerReceivers()进行注冊。

仅仅要注冊了。当事件来暂时,即使程序没有启动,系统也在须要的时候启动程序。

各种应用还能够通过使用 Contest.sendBroadcast()将他们自己的intent broadcasts广播给其它应用程序。

Service 是一种程序,他能够执行非常长的时间。可是他却没实用户界面。

后台歌曲持续播放。这个播放就是播放音乐的Service进行控制的。

通过startService(Intent service)能够来启动一个Service,通过Content.bindService() 能够绑定一个Service。

Content Provider

一个程序能够通过一个ContentProvider 的抽象接口将自己的数据暴露出去。外界通过这一套标准儿童椅的接口和里面的程序进行交互信息。

达到读取,删除等操作!

(当然有对应的权限的限制)

query(Uri,String[],String,String[],String):

通过查询keyword查询数据

insert(Uri,ContentValues):

将一组数据插入到指定的地方

update(Uri,ContentValues,String,String[]):

更新数据

delete(Uri,String,String[]):

删除数据

setContentView(R.layout.main)负责当前的Activity与main.xml相关联。

LinearLayout layoutMain = new LinearLayout(this);

//为了方便。自己构建一个Layout

layoutMain.setOrientation (LinearLayout.HORIONZONTAL);

//设置加入到这个LinearLayout中元素的布局方向为竖直方向

setContentView(layoutMain);

//将我们构建的layoutMain和此Activity进行关联。

LayoutInflater inflate = (LayoutInflater)getSystem.Service(Context.LAYOUT_INFLATER_SERVICE)

//得到一个LayoutInflater 对象。这个对象能够对XML的布局文件进行解析。而且生成一个View。

RelativeLayout layoutLeft = (RelativeLayout)inflate.inflate(R.layout.left,null);

//调用inflate方法将left.xml进行解析,并生成一个RelativeLayout布局。

RelativeLayout.LayoutParams relParam = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT,

RelativeLayout.LayoutParams.WRAP_CONTENT);

//生成一个RelativeLayout适用的LayoutParams。

layoutMain.addView(layoutLeft,100,100)

//将layout加入到layoutMain其中,其中第一个參数是加入进去的View,第二个參数是这个View的高度,第三个是宽度。

layoutMain.addView(layoutRight,relParam)

//将layoutRight 加入到layoutMain其中,第二个參数就是RelativeLayout.LayoutParams

LayoutInflater

这个类用来将xml的布局文件变成一个View的类。出于性能上的考虑。从xml的布局文件生成一个View类这个过程是在应用的构建阶段完毕的,而不是在应用执行阶段进行的。典型的使用过程是在Activity的oncreate方法里变,代码例如以下:

LayoutINflater inflate = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);

LinearLayout layout = (LinearLayout)inflate.inflate(R.layout.ex01_05,null);

LayoutInflater 类通过getSystemService 方法来获得,而不能直接实例化。这个类负责将一个xml的布局文件实例化,从而在代码中能够应用到xml定义的组件。

android学习笔记NO.5的更多相关文章

  1. Android 学习笔记之Volley(七)实现Json数据加载和解析...

    学习内容: 1.使用Volley实现异步加载Json数据...   Volley的第二大请求就是通过发送请求异步实现Json数据信息的加载,加载Json数据有两种方式,一种是通过获取Json对象,然后 ...

  2. Android学习笔记进阶之在图片上涂鸦(能清屏)

    Android学习笔记进阶之在图片上涂鸦(能清屏) 2013-11-19 10:52 117人阅读 评论(0) 收藏 举报 HandWritingActivity.java package xiaos ...

  3. android学习笔记36——使用原始XML文件

    XML文件 android中使用XML文件,需要开发者手动创建res/xml文件夹. 实例如下: book.xml==> <?xml version="1.0" enc ...

  4. Android学习笔记之JSON数据解析

    转载:Android学习笔记44:JSON数据解析 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,为Web应用开发提供了一种 ...

  5. udacity android 学习笔记: lesson 4 part b

    udacity android 学习笔记: lesson 4 part b 作者:干货店打杂的 /titer1 /Archimedes 出处:https://code.csdn.net/titer1 ...

  6. Android学习笔记36:使用SQLite方式存储数据

    在Android中一共提供了5种数据存储方式,分别为: (1)Files:通过FileInputStream和FileOutputStream对文件进行操作.具体使用方法可以参阅博文<Andro ...

  7. Android学习笔记之Activity详解

    1 理解Activity Activity就是一个包含应用程序界面的窗口,是Android四大组件之一.一个应用程序可以包含零个或多个Activity.一个Activity的生命周期是指从屏幕上显示那 ...

  8. Pro Android学习笔记 ActionBar(1):Home图标区

     Pro Android学习笔记(四八):ActionBar(1):Home图标区 2013年03月10日 ⁄ 综合 ⁄ 共 3256字 ⁄ 字号 小 中 大 ⁄ 评论关闭 ActionBar在A ...

  9. 【转】Pro Android学习笔记(九八):BroadcastReceiver(2):接收器触发通知

    文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注册等附加条件.转载须注明出处:http://blog.sina.com.cn/flowingflying或作者@恺风Wei-傻瓜与非傻瓜 广播接 ...

  10. 【转】 Pro Android学习笔记(九二):AsyncTask(1):AsyncTask类

    文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注册等附加条件.转载须注明出处:http://blog.csdn.net/flowingflying/ 在Handler的学习系列中,学习了如何h ...

随机推荐

  1. [转载]MyBatis mapper文件中的变量引用方式#{}与${}的差别

    转载自:http://blog.csdn.net/szwangdf/article/details/26714603 默认情况下,使用#{}语法,MyBatis会产生PreparedStatement ...

  2. apt-get update 报错 W: Unknown Multi-Arch type 'no' for package 'compiz-core'

    源 #deb包 deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse deb http:// ...

  3. thinkphp5将一条数据以toArray()放入session

    直接将找出的数据赋予变量,列:$admin: 存入session:Session::set('user_info',$admin->toArray()); 如果数据中有时间字段: 如若有时间字段 ...

  4. luogu 2-SAT 问题

    题目大意:给出n个bool变量,以及m个条件,条件为x,vx,y,vy,表示 x == vx || y == vy . 求匹配. 题解: 最近新学了一下2-SAT算法.2-SAT指有若干个bool变量 ...

  5. 零基础入门学习Python(15)--格式化

    前言 上节课我们介绍了字符串N多种奇葩方法的用法,但是我们唯独漏掉了format方法,那为何不把format方法和上节课的内容一起讲呢? 因为小甲鱼觉得format方法,跟今天的主题是如出一辙的,都是 ...

  6. assert.throws()函数详解

    assert.throws(block[, error][, message]) Node.js FS模块方法速查 期望 block 函数抛出一个错误. 如果指定 error,它可以是一个构造函数.正 ...

  7. Can't connect to MySQL server on '127.0.0.1' (10061) (code 2003)解决方法

  8. Web框架django进阶篇

    分页 一.Django内置分页 from django.shortcuts import render from django.core.paginator import Paginator, Emp ...

  9. 客户端用plsql进行中文条件查询时无结果的解决办法

    1.SELECT * FROM v$nls_parameters ; 查看NLS_CHARACTERSET 的值是多少,我的AL32UTF8- 查找客户机器的注册表,查找NLS_LANG的值,改成AL ...

  10. hihoCoder#1114 小Hi小Ho的惊天大作战:扫雷·一

    原题地址 回溯+搜索 枚举每个位置上能否放地雷,当第i个位置枚举完成后,第i-1个位置的情况就确定了,此时,检查第i-1个位置是否满足要求,即左右间隔为1的范围内地雷数是否等于申明数字,如果满足条件, ...