Android基础布局2
来源:互联网 发布:mac qq企业邮箱设置 编辑:程序博客网 时间:2024/05/22 20:17
Android的布局管理
布局的作用
视图容器组件负责管理其子控件在屏幕中显示的位置和大小
LinearLayout:线性布局
所有的控件都按照线性排列,有两个方向:水平方向、竖直方向
几个需要注意的属性
layout_gravity:指控件自身相对于父容器的位置
gravity: 是指控件内部的内容相对于控件的边缘所处的位置
layout_weight:是指控件所占空间的比重
FrameLayout:框架布局
也叫层布局和帧布局,控件自动显示在父容器的左上角,后面的覆盖前面的。类似于Photoshop的图层。
添加id属性以便编程使用,方便在类中引用此对象,
比如: android:id="@+id/tv5" @+id/名字 是让系统自动你所起的这个名字创建ID号。
属性margin是外边缘的边距,padding是内填充距离
RelativeLayout:相对布局
每个控件的位置是由其他控件或容器的相对位置决定的。这个布局是应用最广泛的。
将部分布局代码放在另外一个单独文件中,然后在使用的时候引用
布局之间可以使用<include layout="@layout/linearlayoutdemo" />包含不同的布局文件。
TableLayout:表格布局
使用TableRow表示一行,每个控件都是一列内容,表格布局最大的特点是列对齐。
AbsoluteLayout:绝对布局
使用绝对坐标来决定控件的显示位置,它不能灵活地适配各种屏幕,已经不推荐使用了。
GridLayout:网格布局
GridLayout是Android4.0新增加的网格布局管理器,类似于HTML中的table标签,每个控件都是一个单元格。
使用android:layout_gravity=“fill“ 扩展组件
引用其他布局
使用<include layout="@layout/其他布局文件名" />
将两个或两个以上的布局组合起来。
如何去掉状态栏和标题栏,即全屏显示
如果直接继承自Activity类,则
requestWindowFeature(Window.FEATURE_NO_TITLE); //去标题栏
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);//去状态栏
setContentView(R.layout.mylayout);
如果使用V7兼容包时,则
supportRequestWindowFeature(Window.FEATURE_NO_TITLE); //去标题栏
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.relativelayoutdemo2);
选图片作为界面背景:
1.图片的尺寸要合适。
2.背景图片与文字要有明显的对比。
3.长宽比例要协调。
Activity生命周期
Android没有入口方法,只有生命周期方法。Activity有7个生命周期方法。(可以结合图示来研究)
它是与用户交互的对象。
Activity的状态
Running
处于可见并且可交互的激活状态,即前端运行状态。
Paused
被另一个透明或者Dialog样式的Activity覆盖时的状态,是指部分遮挡。
Stopped
被另一个Activity覆盖、失去焦点并不可见状态,完全不可见。
killed
被系统杀死回收或者没有被启动时的状态
七个生命周期方法:
protected void onCreate(Bundle savedInstanceState);
protected void onStart();
protected void onRestart();
protected void onResume();
protected void onPause();
protected void onStop();
protected void onDestroy();
Log调试
Logcat通过android.util.Log类的静态方法来查找错误和打印系统日志消息。它是一个进行日志输出的API,我们在android程序中可以随时为某一对象插入一个Log,然后在DDMS中观察Logcat的输出是否正常。Android.util.Log常用的方法有以下5个:
Log.v
Log.d
Log.i
Log.w
Log.e
分别对应VERBOSE\DEBUG\INFO\WARN\ERROR,当进行调试时,他们的区别并不大,只是显示颜色不同,可以控制要显示的某一类错误。
Android的事件响应
什么是事件监听器?
Android系统是以事件为驱动的,某种事件可以激活某段程序的执行。
事件监听器是一个实现了某种监听接口的类的对象
监听接口通常会在相关类的内部定义
给某个控件安装事件监听器,它就有了事件响应的能力
创建一个新的模块:
在Android Studio里面一个模块相当于Eclipse中的一个项目,它是独立运行一个单独的App。
创建新的Activity对象步骤:
1.创建布局文件
2.创建Activity类
3.重写onCreate方法
4.在onCreate方法中调用setContentView将布局加载
若想让此Activity成为启动界面:
1.在AndroidManifest.xml中注册此Activity类
2.在Activity标签中加上以下代码:
写一个新的Actitivy类,需要在Manifest文件中注册(Android的四大组件都要求注册才能使用)
<activity android:name=".PageOne">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
以上代码可以保障此Activity是一个启动界面
事件监听器的实现方式
按钮的点击事件接口是View.OnClickListener
1.外部类实现事件监听器
2.内部类实现事件监听器
3.本类(Activity)实现事件监听器
4.匿名内部类对象实现事件监听器
另一种的事件处理(控件的onClick属性指定事件处理方法)
控件的onClick属性来指定事件处理的方法
在Activity中创建这个方法
如果有多个控件都使用这个属性,并且都使用同一个事件处理方法
传入的View对象可以调用view.getId()使用ID号区分各控件
页面的跳转
引言:Android的三大组件(Activity、Service和BroadcastReceiver)之间调用需要一个Intent对象。Intent对象就是意图,告诉Android系统,我要如何操作。它可以用来传递信息,起到一个信使的作用。
页面的跳转需要建立第二个页面。
带数据的页面跳转,将第一页面中的数据在跳转的过程中由Intent对象携带到第二页面。
创建第二个页面:
1.创建布局文件。
2.创建Activity类,在onCreate方法中加载布局文件。
3.在Manifest配置文件中注册Activity类。
携带数据的页面跳转:
1)由Intent对象携带数据,传递给启动界面。
Intent intent = new Intent(this,PageTwo.class);
//携带数据的页面跳转
//获取数据
String name = txt1.getText().toString();
String pwd = txt2.getText().toString();
//装载数据
intent.putExtra("username",name);
intent.putExtra("password",pwd);
startActivity(intent);
2)在第二页面中可以直接获取Intent对象,通过这个对象,取出数据。
Intent intent = getIntent();
String name = intent.getStringExtra("username");
String pwd = intent.getStringExtra("password");
displayView.setText("您好!"+name+"\n您的密码是:"+pwd);
- Android基础布局2
- android布局之基础布局
- android基础入门布局讲解(2)
- 【Android基础】页面布局
- android基础控件,布局
- Android-布局基础
- [Android基础]布局属性
- Android UI基础布局
- android 基础 布局优化
- Android基础以及布局
- Android基础02--Android布局
- Android基础布局之六大布局
- Android用户界面设计:布局基础
- Android 各种基础控件布局
- android基础入门布局讲解
- Android用户界面设计:布局基础
- Android 基础 RelativeLayout相对布局
- android布局的基础学习
- 指定特定对象的特定事件
- SpringMVC 上传文件
- Windows10+Linux,双系统双硬盘引导问题解决方法
- 5.5 将整数字符串转为整数值
- 直接在HTML标记中指定事件处理程序
- Android基础布局2
- 留着自己看---自动截图并上传到后台
- Android Studio更新svn上的eclipse项目(修正)
- 详述 IntelliJ IDEA 之 Debug 篇
- SwipeMenuListView的使用点禁忌
- Window alert() 方法
- 项目的jdj和本地的jdk版本不一致
- 关于Android studio 导入 Eclipse项目出现.9图片报错的的处理方法。
- Window confirm()方法