文档章节

Android学习笔记(一)

摆渡者
 摆渡者
发布于 2014/03/03 13:30
字数 1033
阅读 198
收藏 3

1. Android的HelloWorld

1.src目录存放源代码;gen目录是工具帮我们生成的,不可修改;R.java里面的id为res文件夹下的文件或者xml文件中的键值对相对应的。assets文件夹也可以存放文件,这和res文件夹的不同在于,assets文件夹中的文件是不会在R.java中生成id的。

2.在Manifest.xml文件中,哪个Activity中定义有以下语句,这个Activity就是程序的主入口。

<intent-filter>
    <action android:name="android.intent.action.MAIN" />
    <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>

2. Activity的生命周期

  第一次启动Activity时,调用OnCreate方法;

  当Activity处于可见状态时,调用Onstart方法;

  当获得用户的焦点的时候,调用OnRestart方法;

  当被另一个Activity中断的时候,调用OnStop方法;

  当重新唤醒Activity时,如果该Activity没有被销毁,调用OnRestart

  如果已经被销毁,则依次调用OnCreate,OnStart和OnResume

  启动一个Activity的时候,会依次调用OnCreate,OnStart和OnResume三个方法。如果一个Activity(设为A)被另一个Activity(设为B)完全遮挡,则会依次调用A的OnPause,B的OnCreate,OnStart和OnResume三个方法,A的OnStop方法,如果A没有被完全遮挡,则不会调用A的OnStop方法。如果手动调用finish方法或者操作系统的系统资源不够用的时候,则将会调用该A(此时A不可见)的OnDestroy方法。

       如果要实现窗口风格(不是全屏的)的Activity,只需要在Manifest.xml文件中对该Activity添加如下的属性声明:

       android:style/Theme.Dialog

3. Activity布局初步

  android:strechColumns="1"表示在TableLayout中,如果内容不足以撑满父控件,则被拉伸的列为第2列,从0开始。

  TableLayout的布局:

<TableLayout xmlns:…….>
   <TableRow>
       各种控件声明
   </TableRow>
  <TableRow>
       各种控件声明
    </TableRow>
</TableLayout>

  android:layout_width=”fill_parent”

  android:layout_width=”match_parent”

  fill_parent和match_parent的区别:

  其实这两个的作用是一样的,在AndroidAPI8以后,fill_parent被弃用,取而代之的是match_parent.

       android:layout_above                将该控件的底部放于给定的ID上

  android:layout_below

  android:layout_toLeftOf

  android:layout_toRightOf

  android:layout_alignBaseLine          该控件的baseline和给定控件的baseline对齐

  android:layout_alignBottom/Left/Right/Top  和给定控件的边缘对齐

  android:layout_alignParentBottom/Left/Right/Top=“true”和父控件边缘对齐

  android:layout_centerHorizontal =”true”  水平居中

  android:layout_centerInParent=”true”            水平垂直居中

  android:layout_centerVertical=”true”              垂直居中

4. Android常用控件

  1.RadioGroup的监听器为:setOnCheckedChangeListener,需要实现的接口为RadioGroup.OncheckedChangeListener

CheckBox的监听器也为:setOnCheckedChangeListener,但它需要实现的接口为CompoundButton.OncheckedChangeListener

  2.可以使用下面一句为用户显示提示信息:

  Toast.makeText(MainActivity.this, "显示的文字", Toast.LENGTH_SHORT).show();

  3.android:visibility=”gone”表示当前控件不可见。

  该属性有三个值:visible, invisible, gone. 这三个值分别对应View.visible, View.invisible和View.gone。其中:

  visible:可见

  invisible:不可见,但这个View仍然会占用在xml文件中分配的布局空间

  gone:不可见,但这个View在ViewGroup中不保留位置,会重新Layout,不占用空间,后面的View会占用它的位置。

  4.在<ProgressBar>标签中,进度条默认的最大值是100,也可以通过android:max属性来修改该值。例如:android:max=”200”.还可以在程序中通过progressBar.setMax(200)来设置。

  5.设置窗口全屏

       5.1.可以在程序中使用下面两句话设置:

       requestWindowFeature(Window.FEATURE_NO_TITLE);//不显示程序的标题栏

       getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,

       WindowManager.LayoutParams.FLAG_FULLSCREEN);//不显示系统的标题栏

       setContentView(R.layout.activity_main);

       这两句话可以设置程序为全屏,但是一定要放在setContentView的前面。

       5.2.也可以通过修改Manifest.xml文件来实现程序的全屏。

       可以修改<application>标签或<activity>标签的属性值来实现。他们的区别是修改<application>标签后所有的Activity都会全屏,而修改<activity>后只对当前的Activity有效。

       在< application >或<activity>标签(根据需要而定)添加:      android:theme="@android :style/Theme.NoTitleBar.Fullscreen" 即可实现。 

       6. 获取屏幕的宽度和高度,使用以下代码即可

       int screenWidth, screenHeight;

       WindowManager windowManager = getWindowManager();

       Display display = windowManager.getDefaultDisplay();

       screenWidth = display.getWidth();

       screenHeight = display.getHeight();


© 著作权归作者所有

共有 人打赏支持
摆渡者
粉丝 340
博文 171
码字总数 206342
作品 0
浦东
程序员
私信 提问
Android实战经验之图像处理及特效处理的集锦(总结版)

1 Android学习笔记进阶之在图片上涂鸦(能清屏) 2 Android学习笔记之详细讲解画圆角图片 3 Android学习笔记进阶20之得到图片的缩略图 4 Android学习笔记进阶19之给图片加边框 5 Android学习笔...

xiaosi
2012/03/12
39.3K
25
第一天学习Android的一些笔记

昨天学习了怎样装Android配置环境,下载SDK用了好久的时间,再加上一开始不会,弄了好长时间,今天第一天学习,跟着视频教程学的。下边是我的一些笔记,仅做留念与学习笔记 。 快捷键: 智能...

子弹兄
2014/01/16
0
0
一份关于 Java、Kotlin 与 Android 的学习笔记

JavaKotlinAndroidLearn 这是一份关于 Java 、Kotlin 、Android 的学习笔记,既包含对基础知识点的介绍,也包含对一些重要知识点的源码解析,笔记的大纲如下所示: Java 重拾Java(0)-基础知...

叶应是叶
2018/08/08
0
0
Android adt bundle 开发环境配置及第一个“Hello world”程序运行

最近在学习Android 顺便记录下学习过程当作复习吧,这是写的第一篇正式博客。 一、jdk环境配置 二、android adt bundle 下载 三、安装SDK 四、模拟器及真机调试 五、第一个程序 Hello world!...

程序猿付显
2014/07/23
0
0
【Android学习总结】之Activity:深入理解、体验Activity的生命周期

【本博客内的文章是本人的学习笔记总结,如有错误请各位批评指正,谢谢!欢迎加入群285077071讨论】 关于Activity的生命周期的学习,我将从以下几个方面入手来全面认识: 一、什么是生命周期...

kinbos
2018/06/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

多命令链命令参数

Commands: --install <link> <name> <path> <priority> [--slave <link> <name> <path>] ... 在系统中加入一组替换项. --remove <name> <path> 从 <名......

Pulsar-V
41分钟前
1
0
【转】go get命令使用socket代理

由于某些不可描述的原因,国内使用go get命令安装某些包的时候会超时导致失败,比如net包、sys包、tools包等。第一种解决办法就是自己从git上下载后添加链接到GOPATH中,比如: 1234...

yiduwangkai
43分钟前
5
0
Windows同步对象Event和Linux的条件变量

最近在看一些同步对象模拟的东东,特别对在Windows下如何模拟条件变量折腾了很久。 1 Windows同步对象Event 微软有一个很有意思的同步对象,某种程度上和Linux的条件变量很相似。但秉承微软一...

shzwork
50分钟前
1
0
从上往下打印出二叉树的每个节点,同层节点从左至右打印。

//第一种做法 public class Solution { public ArrayList<Integer> PrintFromTopToBottom(TreeNode root) { ArrayList <Integer> li=new ArrayList<Integer>(); ArrayList <TreeN......

南桥北木
今天
2
0
linux 服务管理 Crontba、Ntpdate、Logrotate、Supervisor

crond linux 系统则是由 cron (crond) 这个系统服务来控制的。Linux 系统上面原本就有非常多的计划性工作,因此这个系统服务是默认启动的。 另外, 由于使用者自己也可以设置计划任务,所以,...

狼王黄师傅
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部