Android学习笔记五,一些Android中的方法介绍

一、Android中的布局(layout)
1.线性布局 - Linear Layout:按排列的方向(orientation)分为垂直线性布局(android:orientation=“vertical”)和水平线性布局(android:orientation=“horizontal”//水平线性布局)。
线性布局定义了排列方向后,会一直沿着该方向一直排列下去,除非利用嵌套再重新定义。
我们的计算器界面就是如此,在原有的垂直布局里进行了几个嵌套式的水平布局。

在这里插入图片描述
常用代码:

android:layout_weight="数字" //表示剩余空间该控件所占的百分比,通常用于平均几个控件之间的位置,定义为1
android:gravity="right"//android:gravity:是对控件本身来说的,是用来设置“控件自身的内容”应该显示在“控件自身体积”的什么位置,默认值是左侧。
android:layout_gravity="right"//android:layout_gravity:是相对于控件的父元素来说的,设置该控件在它的父元素的什么位置。
android:layout_gravity="fill"//表示的是水平拉伸,占满父空间;或者垂直拉伸,占满父空间
android:layout_width="match_parent"
android:layout_height="wrap_content"
//上面两个分别是设置控制键宽和高的方法;注意的是:
//match_parent表示继承父类的最大长度;Android2.2及以后的版本中match_parent和fill_parent是一个意思 .两个参数意思一样,match_parent更贴切,于是从2.2开始两个词都可以用。那么如果考虑低版本的使用情况你就需要用fill_parent了
//wrap_content表示设置为适应文本大小的长度;设置一个视图的尺寸为wrap_content将强制性地使视图扩展以显示全部内容。以TextView和ImageView控件为例,设置为wrap_content将完整显示其内部的文本和图像。布局元素将根据内容更改大小。设置一个视图的尺寸为wrap_content大体等同于设置Windows控件的Autosize属性为True。
//fill_parent设置一个构件的布局为fill_parent将强制性地使构件扩展,以填充布局单元内尽可能多的空间。这跟Windows控件的dockstyle属性大体一致。设置一个顶部布局或控件为fill_parent将强制性让它布满整个屏幕。

相对布局 Relative Layout:

android:layout_alignParentLeft="true" //位于父容器左上角
android:layout_alignParentBottom
android:layout_alignParentTop
android:layout_alignParentRight  //只能在父控件为RelativeLayout时才起作用,而对于像LinearLayout这样的布局不起作用
android:layout_centerInParent="true" //位于布局容器的中央位置;
layout_centerHorizontal//位于布局容器水平居中位置;
layout_centerVertical//位于布局容器垂直居中位置
//被参照控件:控件与控件之间位置:
android:layout_below="@id/***" //位于***组件下方 
android:layout_toLeftOf="@id/###" /*位于###组件左则,紧贴并列*/
//控件与控件之间对齐方式: 
android:layout_alignLeft="@id/***" //与***组件左边界紧贴对齐,叠在一起;
android:layout_alignTop="@id/###" /*与###组件上边界对齐*/

表格布局 Table Layout:
表格布局模型以行列的形式管理子控件,每一行为一个TableRow的对象,当然也可以是一个View的对象。TableRow可以添加子控件,每添加一个为一列。N个TableRow之间是以N行的行数的方式纵向排列。

android:shrinkColumns="n":/*设置第n+1列为可收缩的列。当可收缩的列太宽(内容过多)不会被挤出屏幕。当需要设置多列为可收缩时,将列序号用逗号隔开。*/
android:stretchColumns="n":/*设置第n+1列为可伸展的列,以填满剩下的多余空白空间,若有多列需要设置为可伸展,请用逗号将需要伸展的列序号隔开。  */             
     // 列元素(Button)属性,定义子控件。
    android:layout_colum:/*设置该控件在TableRow中指定的列。*/
   android:layout_span:/*设置该控件所跨越的列数。*/

网格布局 Graid Layout:

android:rowCount="5" //定义行最大格数为5
android:columnCount="4"//列最大格数为4的格子
android:layout_columnSpan="4"//设置了该组件在横向上跨了几列
//android:layout_width和android:layout_columnSpan功能其实并不重叠,前者设置的是在视觉上横向的宽度,后者则是不管前者多宽,android:layout_columnSpan设置的范围内都不允许其他组件占用。
android:layout_rowSpan="3"//表示=的该格子占了3行
android:layout_gravity="fill"//如果需要往水平或竖直方向填充该控件,这句话不写,会多空出两个格子,但不会充满三个格子/>

绝对布局 AbsoluteLayout:
绝对布局的子控件需要指定相对于此坐标布局的横纵坐标值,手机应用需要适应不同的屏幕大小,而这种布局模型不能自适应屏幕尺寸大小,应用的相对较少。

android:layout_x="10px"//水平绝对位置
android:layout_y="10px"//垂直绝对位置

帧布局 FrameLayout:
帧布局,默认针对左边位置的(可用android:layout_gravity="center"定义位置)。所有的控件都有各自的坐标位置来显示
框架布局是最简单的布局形式。所有添加到这个布局中的视图都以层叠的方式显示。第一个添加的控件被放在最底层,最后一个添加到框架布局中的视图显示在最顶层,上一层的控件会覆盖下一层的控件。这种显示方式有些类似于堆栈。
二、Android中activity文件中的方法:

private boolean isChar = false;//Boolean(布尔)对象用于将非布尔值转换为布尔值(true 或者 false)。检查布尔对象是 true 还是 false。
StringBuffer// 类的对象能够被多次的修改,并且不产生新的未使用对象。
//StringBuilder 类在 Java 5 中被提出,它和 StringBuffer 之间的最大不同在于 StringBuilder 的方法不是线程安全的(不能同步访问)。由于 StringBuilder 相较于 StringBuffer 有速度优势,所以多数情况下建议使用 StringBuilder 类。然而在应用程序要求线程安全的情况下,则必须使用 StringBuffer 类。
 super.onCreate(savedInstanceState)//是调用父类Activity的onCreate()方法

以下是 StringBuffer 类支持的主要方法:

digtalB = new StringBuffer();
digtalB.append(0);
StringBuffer	append(boolean b)//将 boolean参数的字符串表示附加到序列中。
StringBuffer	append(char c)//将 char参数的字符串表示附加到此序列。
StringBuffer	append(char[] str)//将 char数组参数的字符串表示附加到此序列。
StringBuffer	append(char[] str, int offset, int len)//将 char数组参数的子阵列的字符串表示附加到此序列。
StringBuffer	append(CharSequence s)//追加指定的 CharSequence到这个序列。
StringBuffer	append(CharSequence s, int start, int end)//追加指定的序列 CharSequence到这个序列。
StringBuffer	append(double d)//将 double参数的字符串表示附加到此序列。
StringBuffer	append(float f)//将 float参数的字符串表示附加到此序列。
StringBuffer	append(int i)//将 int参数的字符串表示附加到此序列。
StringBuffer	append(long lng)//将 long参数的字符串表示附加到此序列。
StringBuffer	append(Object obj)//追加 Object参数的字符串表示。
StringBuffer	append(String str)//将指定的字符串附加到此字符序列。
StringBuffer	append(StringBuffer sb)//将指定 StringBuffer这个序列。
StringBuffer	appendCodePoint(int codePoint)//将 codePoint参数的字符串表示法附加到此序列。
StringBuffer	delete(int start, int end)//删除此序列的子字符串中的字符。
StringBuffer	deleteCharAt(int index)//删除 char在这个序列中的指定位置。
StringBuffer	insert(int offset, boolean b)//在此序列中插入 boolean参数的字符串表示形式。
StringBuffer	insert(int offset, char c)//在此序列中插入 char参数的字符串表示形式。
StringBuffer	insert(int offset, char[] str)//在此序列中插入 char数组参数的字符串表示形式。
StringBuffer	insert(int index, char[] str, int offset, int len)//在此序列中插入 str数组参数的子阵列的字符串表示形式。
StringBuffer	insert(int dstOffset, CharSequence s)//将指定的 CharSequence这个序列。
StringBuffer	insert(int dstOffset, CharSequence s, int start, int end)//将指定的子序列 CharSequence这个序列。
StringBuffer	insert(int offset, double d)//在此序列中插入 double参数的字符串表示形式。
StringBuffer	insert(int offset, float f)//在此序列中插入 float参数的字符串表示形式。
StringBuffer	insert(int offset, int i)//将第二个 int参数的字符串表示插入到此序列中。
StringBuffer	insert(int offset, long l)//在此序列中插入 long参数的字符串表示形式。
StringBuffer	insert(int offset, Object obj)//将 Object参数的字符串表示插入到此字符序列中。
StringBuffer	insert(int offset, String str)//将字符串插入到此字符序列中。
StringBuffer	replace(int start, int end, String str)//用指定的String中的字符替换此序列的子字符串中的 String 。
StringBuffer	reverse() //导致该字符序列被序列的相反代替。

序号 方法描述
1. public StringBuffer append(String s)将指定的字符串追加到此字符序列。
2. public StringBuffer reverse() 将此字符序列用其反转形式取代。
3. public delete(int start, int end)移除此序列的子字符串中的字符。
4. public insert(int offset, int i)将 int 参数的字符串表示形式插入此序列中。
5. replace(int start, int end, String str)使用给定 String 中的字符替换此序列的子字符串中的字符。

Bundle SavedInstanceState保存状态:
当按到home键,退出了程序界面,或者回收了应用的进程,这种情况下使用Bundle SavedInstanceState 就可以再次打开应用的时候恢复到原来的状态.
当Activity 变得容易被销毁时,Activity的onSaveInstanceState 就会被执行
除非是 用户自己按了back按键。

btnAdd = (Button) this.findViewById(R.id.btnAdd);//通过id进行查找
发布了5 篇原创文章 · 获赞 0 · 访问量 150

猜你喜欢

转载自blog.csdn.net/qq_40953864/article/details/104591720