android自己做的一些基础笔记.docx
《android自己做的一些基础笔记.docx》由会员分享,可在线阅读,更多相关《android自己做的一些基础笔记.docx(43页珍藏版)》请在冰豆网上搜索。
android自己做的一些基础笔记
安卓笔记
第一章:
安卓的相关知识:
一:
3G
1.3G的概念
3G全称为:
3rdGeneration,中文含义即为第三代数字通信,是指将无线通信与国际互联网等多媒体通信结合的新一代移动通信系统
2.符合3G标准的技术
CDMA2000
WCDMA
TD-SCDMA
速度快、融入了多媒体(图片视频等等)
二、智能手机
苹果ios、android、黑莓、塞班、meego、乌邦图(ubuntu---linux)、
火狐os、miui、wp7、锤子系统
三、android
特点?
开源、linux内核、可自定义性强、dalvik虚拟机、OHA联盟
缺点:
碎片化(版本太杂了)、屏幕适配问题
四、dalvik虚拟机
1..java--->.dex.java--->.class
2.速度快(基于寄存器的)慢(内存中运算)
3.文件更小
4.自身对硬件要求低对资源做了优化
五、framwork
四层
applicationjava
applicationframworkjava
libraries类库、androidruntime(c语言)
linux
六、安装
JDK
Eclipse
ADT(插件)
SDK(android开发工具adb.exeddms模拟器、sqlite、draw9patch)
七、安卓项目的文件说明:
例如:
helloworld
包名:
com.公司名.应用名
继承activity重写oncreate方法,setContentView(R.layout.main)
工程有哪些文件
src,gen,res,assets,bin
res:
drawable(h/l/m),layout,values,raw(图片,音乐,数据),menu,values-v11v14,anim(animation动画)
package=“com.jky”
包名是一个软件的唯一标识(同包名的软件会替换原来的程序)
android:
versionCode=“1”;版本号
android:
versionName="1.0"版本名
android:
minsdkversion=“8”Sdk最小支持的版本号
(project.properties文件里的#Projecttargettarget=android-8标是当前开发使用的版本)
android:
icon软件的图标
android:
lable软件的名字
“是android的四大组件之一,作用:
专门用于显示,做一些逻辑控制
name名字
lable:
一般的一个软件的名字是根据application的lable决定的,但是如果activity里设置了lable,那么软件的名字就会跟随此名字”
“是意图过滤器,让别人能调用此activity,隐式调用”
安卓四大组件:
Activity,BroadcastReeiver(广播接收者),ContentProvider(内容提供者),Service(服务)。
=------------重要
一些异常:
res下定义的id无法映射到R.Java文件下
处理方法:
res/layout下的xml名不能有大写字母,命名规范为【a-z0-9】
和。
选中项目,右键Crean重新编译一下
第二章:
电话、短信常用布局
一:
电话拨号器:
1.findViewById()有什么样作用
通过布局文件中的属性id拿对象
怎样去激活系统拨号组件
Intentintent=newIntent();//创建一个意图
intent.setAction(Intent.ACTION_CALL);//传参数
intent.setData(Uri.parse("tel:
"+number));//设置动作数据
startActivity(intent);//激活
电话拨号权限:
name="android.permission.CALL_PHONE"/>
二:
短信发送器器:
发短信需要使用什么类
SmsManagersmsManager=SmsManager.getDefault();//获得短信管理器
smsManager.sendTextMessage(number,null,smg,null,null);//设置数据
Toast.makeText(getApplicationContext(),R.string.success,Toast.LENGTH_LONG)
.Show();//吐司提示,查看发送状态
短信发送权限:
name="android.permission.SEND_SMS"/>
注意:
权限的作用是什么?
在哪里加
作用:
防止恶意软件侵犯用户的隐私,维护手机的安全性
在AndroidManifest.xml里加(电话与短信都需获取权限:
)
三:
各种简单布局
Activity的方法和生命周期:
--onCreate一个activity启动时运行(第一次)
--onStart当activity处于可见状态时运行
--onResume当activity可以得到用户焦点时(可以被操作)运行
--onPause当activity处于暂停状态时(例如弹出其他activity而原activity未被完全覆盖),可在此保存数据,以便此activity释放时恢复原状
--onStop当activity完全不可见时
--onRestart当activity未被销毁而在此被调用时
--onDestory当activity被销毁时
当调用finish();语句时,Activity被销毁。
Task
一个包含多个Activity的栈。
(栈具有后进先出的结构)。
其中栈的动作只有弹出和压入两个动作,不能进行重新排序。
建立一个对话框风格的Activity
要在Activity的注册文件AndroidManifest中注册时在注册语句后加入代码:
name=".SecondActivity"
android:
label="@string/second"
android:
theme="@android:
style/Theme.Dialog"
/>
Activity的布局方法:
--LinearLayout的使用方法(线性)
其中带有滚动条的线性布局为ScrollView
滚动条的方向属性:
scrollbars
带有滚动条的表格布局为GridView
xmlversion="1.0"encoding="utf-8"?
>--声明版本和使用的编码
android="
--xml的命名空间
控制线性布局本身的属性:
android:
orientation="vertical"--布局的方向(水平,垂直)
android:
layout_width="fill_parent"--宽
android:
layout_height="fill_parent"--高
>
常用标签:
--
android:
id——为控件指定相应的ID
android:
text——指定控件中显示的文字,需要注意点是,这里尽量使用string.xml
android:
grivity—-子控件的对齐方式
-top——上
-bottom——下
-center_vertical——垂直方向的居中
-fill_..——垂直方向充满
-center_horizontal——水平方向居中
-fill_..——水平方向充满
-center——居中
-fill——充满
-clip_vertical——
—.._horizontal——
android:
textSize——指定控件中字体的大小(单位磅pt)
android:
backgroud——指定该控件所使用的背景色,RGB命名法——?
android:
backgroud=“@drawable/背景图片的名字”
android:
width——指定控件的宽度
-fill_parent——充满父控件
-wrap_content——恰好适应内容
android:
height——指定控件的高度
android:
padding*——指定控件的内边距(上下左右)(单位dip或像素),也就是说控件中的内部控件距外部控件的距离
android:
layout_marginLeft--指定控件的外边距,两个相邻控件之间的间隙
android:
sigleLine——设置为真(true),则将控件在同一行当中进行显示(不能完全显示时用..表示),
假(false),时一行不够延续到下一行,内容太时会导致控件的向下延伸
android:
layout_weight——可与下一个标签中的weight联合起来界定标签的相对大小
-->
--TableLayout的使用方法(表格)
xmlversion="1.0"encoding="utf-8"?
>
android="
--同上
android:
layout_width="fill_parent"
android:
layout_height="fill_parent"
android:
stretchColumns="1"--表格无法充满左右宽度时,拉伸的列。
java中“0”表示第一列。
>
--行标签
android:
id="@+id/row01_text01"
android:
text="@string/text01"
android:
background="#aa0000"
android:
padding="3dip"--表示前后左右的内边距
/>
android:
…
………
/>
……..
/>
…..
/>
两个标签嵌套使用可以实现更复杂的Activity。
GirdView的使用--可上下滑动的表格布局
android:
id="@+id/gv_apps"
android:
layout_height="fill_parent"
android:
layout_width="fill_parent"
android:
numColumns="3"--表格的列数
android:
horizontalSpacing="10px"--表格中的item之间水平方向的间距
android:
verticalSpacing="10px"--表格中的item之间的垂直方向的间距
android:
listSelector="@drawable/choose_gridview"
--设置当一个item被点击时的背景图片
android:
layout_marginTop="28px"
android:
layout_marginBottom="58px"
android:
layout_marginLeft="5px"
android:
layout_marginRight="5px"
>
应用GridView创建一个点击MENU弹出一个选项框
相对布局RelativeLayout:
xmlversion="1.0"encoding="utf-8"?
>
xmlns:
android="
android:
layout_width="fill_parent"
android:
layout_height="fill_parent"
android:
padding="10dip"——整个布局的内边距
>
--
RelativeLayout的各种属性
两控件反位置对齐
android:
layout_above——将控件置于给定ID的控件之上
android:
layout_below——将控件置于给定ID的控件之下
android:
layout_toLeftOf——将控件的右边缘和给定ID的控件的左边缘对齐(将控件置于给定控件的左边)
android:
layout_toRightOf——讲控件的左边缘和给定ID的控件的右边缘对齐(将控件置于给定控件的右边)
两控件同位置对齐
android:
layout_alignBaseline——将控件的baseline和给定ID的控件的baseline对齐(底线对齐)
android:
layout_alignBottom——将控件的底部边缘与给定ID的控件的底部对齐
android:
layout_alignTop——将控件的顶部边缘和给定Id的控件的顶部对齐
android:
layout_alignLeft——将控件的左边缘与给定ID的控件的左边缘对齐
android:
layout_alignRight——将控件的右边缘与给定ID的控件的右边缘对齐
控件与父控件的相对位置
android:
layout_alignParentBottom——值为true时,控件的底部与父控件的底部对齐
android:
layout_alignParentTop——值为true时,控件的顶部与父控件的顶部对齐
android:
layout_alignParentLeft——值为true时,控件的左边与父控件的左边对齐
android:
layout_alignParentRight——值为true时,控件的右边与父控件的右边对齐
控件相对于整体位置
android:
layout_centerHorizontal——值为true时,控件水平方向居中
android:
layout_centerVertical——值为true时,控件垂直方向居中
android:
layout_centerInParent——值为true时,控件垂直水平方向都居中
-->
可输入文本框标签:
android:
id="@+id/edit"
android:
layout_width="fill_parent"
android:
layout_height="wrap_content"
android:
background="@android:
drawable/editbox_background"
——背景为android自定义可输入文本框的一个背景颜色
android:
layout_below="@id/text"
这里可以设置一个输入框内的提示文字的属性:
hint
/>
获得输入框的值
StringnameEdit=nameEdit.getText().toString();
在这里可以使用Intent来传递输入框得到的值到其他的Activity
Intentintent=newIntent();
Intent.putExtra(“键”,”值”);
从Intent得到键值对的值
Intentintent=getIntent();
StringStr=intent.getStringExtra(“键”);
将一个字符串转换为整形:
Intint=Integer.parseInt(string);
第三章:
常用控件与适配器
当一个控件中的文字太多而无法全部显示的时候:
android:
singleLine="true"--属性是将文字进行单行显示
当设置了上面的属性后就可以设置:
android:
ellipsize=--这个属性有多个值,可以设置不能显示时省略号的位置,最后一个值是将不能显示的部分使用走马灯的形式显示出来
除去title和全屏显示(在Activity调用XML之前)
requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
--除去title
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
--全屏显示(除去手机提示栏)
1.RadioGroup和RadioButton--单选按钮
--XMl文档中:
android:
id="@+id/radio"
android:
…..
android:
orientation="vertical"--该属性用于规定下面的单选按钮的布局方式(垂直和水平)
>
android:
….
/>
android:
….
/>
--java文件中
声明同上面介绍的标签:
privateRadioGroupradio=null;
radio=(RadioGroup)findViewById(R.id.radio);
//在RadioGroup上绑定监听器,内部实现Toast方法,监听器的方法与Button的方法不同
radio.setOnCheckedChangeListener(newRadioGroup.OnCheckedChangeListener(){
@Override
publicvoidonCheckedChanged(RadioGroupgroup,intcheckedId){
//TODOAuto-generatedmethodstub
if(femaleButton.getId()==checkedId){
System.out.println("female");
2.Toast标签-—提示框
//Toast标签用于实现一个短暂的提示消息(常用于提示)
Toast.makeText(RadioActivity.this,"female",Toast.LENGTH_SHORT).show();
}
elseif(maleButton.getId()==checkedId){
System.out.println("male");
Toast.makeText(RadioActivity.this,"male",Toast.LENGTH_SHORT).show();
}
}
});
3.CheckBox标签--多选按钮
--XMl文件中
android:
id="@+id/swim"
android:
…..
/>
android:
….
/>
--java文件中
声明同上面介绍的标签。
//在CheckButton上绑定监听器,监听器的方法继承CompoundButton
swim.setOnCheckedChangeListener(newCompoundButton.OnCheckedChangeListener(){
@Override
publicvoidonCheckedChanged(CompoundButtonbuttonView,booleanisChecked){
//TODOAuto-generatedmethodstub
if(isChecked){
System.out.println("CheckBox--->swimisChecked");
}
else{
System.out.println("CheckBox--->swimisunChecked");
}
}
});
5.ListView--列表布局控件
--需要两个XMl文件
第一个XML文件:
xmlversion="1.0"encoding="utf-8"?
>
…..
>
android:
id="@+id/linearlayout"
android:
layout_width="fill_parent"
android:
layout_height="wrap_content"
android:
orientation="vertical"--垂直
>
android:
id="@+id/android:
list"--android内置的命名
android:
layout_width="fill_parent"
android:
layout_height="wrap_content"
android:
drawSelectorOnTop="false"
--设置在选中列表一行时,这一行的内容是否可以遮盖(false为不被遮盖)
android:
scroll