初步认识FC(force close)强制关闭安卓程序:安卓程序在运行时由于各种原因难免会出现疏忽或其它原因,在程序运行时会出现FC,这时应该如何解决?
首先就去看日志
1、拖到最下面,那个就是当前应用程序的错误日志。
2、看main(一个日志错误的开始);
先查看异常类型:例如:NullPointException
3、从异常类型开始往下查看,找到第一个自己写的代码。
4、双击定位到出现问题的代码行。
再根据日志的提示做相应的修改。
也可以用打印日志的方法来调试程序:根据日志的不同级别可以分为以下几种:
Log.v("onClick", "string:" + string); v:verbose 意思是啰嗦的意思;(黑色)
过滤的时候自它之上的日志等级都可以打印出来
Log.d 颜色:蓝色的; debug调试状态;
Log.i 绿色的 一般性的提示消息 information
Log.w 橙色的 warning警告 提醒我们注意要优化代码
Log.e 红色 错误 我们就要认真分析
ImageView
<ImageView
android:id="@+id/p_w_picpathView1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@drawable/ic_launcher" //前景图片
android:scaleType="center" //图片的缩放模式
center :居中不放大
fitXY :按宽高比例缩放
fitStart : 从左侧开始按比例缩放
/>
2、res文件夹下面的资源文件命名规则(a~z 0~9 _)(不能以数字开头)
3、在代码里面改变Imageview的属性
//设置ImageView的前景图片
//p_w_picpathView.setImageResource(R.drawable.ic_stub);
//设置背景图片
p_w_picpathView.setBackgroundResource(R.drawable.ic_stub);
注:p_w_picpathbutton 继承 p_w_picpathView
LinearLayout 线性布局
android:orientation="vertical" 设置布局内部空间的排列方式
值: vertical 垂直
horizontal 水平
控件在LinearLayout里面特有的属性:
android:layout_gravity 控件在布局里面的对齐方式 值(上下左右 居中)
android:layout_weight 权重、比重;每个控件的这个属性值一样的话就平分布局
注:宽高必须为match的时候才能生效
平分的是 剩余空间
公式: 最终控件的大小 = 原大小 + (剩余空间/所有比重的和)
通用属性:
内容跟控件间的空隙:android:padding="30dp" (四周)
paddingTop 上
paddingBottom 下
paddingLeft 左
paddingRight 右
控件之间的间隙:android:layout_margin="50dp" (四周)
android:layout_marginTop 上
android:layout_marginBottom 下
android:layout_marginLeft 左
android:layout_marginRight 右
内容在控件里面的对齐方式:android:gravity="bottom|center_horizontal"
值:上下左右 居中 (可以搭配使用)
注意:跟layout_gravity区分
RelativeLayout 相对布局
控件在布局中的对齐方式:android:layout_centerHorizontal="true" 水平居中 值:boolean类型的。
android:layout_centerVertical="true" 垂直居中
android:layout_centerInParent="true" 居中
android:layout_alignParentLeft="true" 左对齐
android:layout_alignParentTop="true" 上对齐
android:layout_alignParentBottom="true" 下对齐
android:layout_alignParentRight="true" 右对齐
控件之间的位置关系:
android:layout_below="@+id/button1" 下 值:所对应控件的id
android:layout_above="@+id/button1" 上
android:layout_toLeftOf="@+id/button1" 左
android:layout_toRightOf="@+id/button1" 右
控件之间的对齐方式:android:layout_alignLeft="@+id/button1" 左对齐 值:所对齐的那个控件的id
android:layout_alignBottom="@+id/button1" 下对齐
android:layout_alignRight="@+id/button1" 右对齐
android:layout_alignTop="@+id/button1" 上对齐
FrameLayout 帧布局
特性:层叠控件
android:layout_gravity
TableLayout 表格布局
每一行就是一个TableRow
每一列的列宽是以宽度最大的那个控件为基准的。
AbsoluteLayout 绝对布局 (绝对座标来定位控件)
不建议使用
四大组件:
一, Activity
三大要素:
1)创建的类要继承Activity
2)setContentView() 引用一个布局文件
3)在清单文件里面注册
启动activity:
Intent intent = new Intent(); //Intent意图:起到了桥梁连接的作用。
intent.setClass(MainActivity.this, SecondActivity.class);
startActivity(intent );
消息传递: A——>B
第一个界面:
意图对象.putExtra(key, values); (键值对形式)
(key 是字符串类型
values 基本类型、对象)
第二个界面
Intent intent = getIntent(); //得到意图对象
String string = intent.getStringExtra("key");
消息传递:A->B->A
1、A启动B的方法:startActivityForResult(intent, 0);
2、B返回A并传递消息:
Intent data = new Intent();
data.putExtra("msg", "返回回来的消息");
setResult(0, data ); //返回一个消息
finish();//关闭当前界面
3、A接收消息:
重写onActivityResult();
消息接收到之后所做的动作就在onActivityResult()执行;
待续