内容来源:高成珍、钟元生《Android编程经典案例》学习笔记

表格布局——TableLayout

表格布局以行和列的方式来管理界面的布局,但并不能明确声明包含几行几列。可通过TableRow来增加行,然后再在其中添加其他控件

表格的常用属性:

android:collapseClolumns---------隐藏指定的列

android:shrinkColumns:----------压缩指定的列

android:stretchColumns----------扩展指定的列

android:layout_column-----------指定控件所在TableRow 中 所处的列

android:layout_span-------------指定某一控件所跨越的列数

自定义定义shape类型:

创建一个rect.xml文档:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
  <solid
    android:color="#00000000"/>
  <padding
    android:left="5dp"
    android:top="5dp"
    android:right="5dp"
    android:bottom="5dp"/>
  <stroke
    android:width="2dp"
    android:color="#000000"/>
</shape>

横屏显示:

方式1:在AndroidManifestxml清单文件中对需要横屏显示的Activity添加 android:screenOrientation="landscape" 属性

方式2:在代码中进行判断:

if(getRequestedOrientation() != ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE)

{

  setRequestedOrientation(ActivityInfo.ORIENTATION_LANDSCAPE);

}

相对布局(RelativeLayout)中的常用属性:

android:layout_centerHorizontal------设置组件是否在父容器中水平居中

android:layout_centerVertical

android:layout_centerInParent--------设置组件是否在父容器中正中央位置

android:layout_alignParentTop-------------设置组件是否与父容器的顶端对齐

android:layout_alignParentBottom

android:layout_alignParentLeft

android:layout_alignParentRight

android:layout_alignTop-------------------指定该组件位于给定的ID的控件的上方

android:layout_alignBottom

android:layout_alignLeft

android:layout_alignRight

android:layout_toRightOf------------------指定该组件位于给定的ID的控件的右侧

android:layout_toLeftOf

android:layout_above

android:layout_below

帧布局(FrameLayout):

在布局中每个控件独自占一帧或一层,该层中未包含内容的部分将是透明的。控件添加的顺序即层叠加的顺序,

后面添加的控件将会覆盖前面的控件。控件的位置可以通过android:layout_grabity 的属性来设置。通过层布局能

够很方便地实现多个控件叠加或渐变的效果

关于定时器Timer:

定时器创建的线程属于子线程,不能对UI进行直接操作。Android中界面操作是非线程安全的,即当多个线程对

其进行操作时结可能不一致。为了避免出现这种情况,Android中规定,所有的UI操作只能放在主线程中。

Handler 消息传递:

Handler可以为线程之间的通信提供消息传递,当Handler的发送消息成功时,将调用Handler类的

handleMessage(Message msg)方法;Handler类的主要方法有:

public void handleMessage(Message msg);//---获取并处理信息

public final boolean sendEmptyMessage(int what);//---发送一个只含有标志的消息

public final boolean hasMessage(int what);//---监测消息队列中是否含有标记的消息

public final boolean post(Runable r);----将一个线程添加到消息队列中

Message 类:

public Message();//---构造方法,推荐使用Message.Obtain();

public void copyFrom(Message msg);//---复制指定的内容

public long getWhen();//---获取消息发送的时间,单位为ms

public Bundle getData();//---获取消息中的数据

public static Message obtain();//---从消息池中获取一个消息

public void setData(Bundle data);//---向消息中写入数据

public void setTarget(Handler target).//---设置消息的目标对象

最新文章

  1. C# IEnumberable &amp; IQueryable 区别
  2. Xilinx下载安装与在win10闪退问题解决方法
  3. idea添加内存
  4. Tomcat实现分析(一)--类加载及容器组件
  5. Linux之脚本安装软件
  6. 微软正式发布Visual Studio 2013 Update 3 (2013.3) RTM
  7. paip.环境设置 mybatis ibatis cfg 环境设置
  8. Form1和Form2的交互
  9. Zend Studio的配置和使用
  10. Datatable转换为Json 然后,Json数据导入 js 档
  11. 解析好的静态页面.shtml浏览器无法解析.需要apache解析后再返回给浏览器
  12. 通过修改CoreCLR中的ClrHost实现自托管程序
  13. swfit - 实现类似今日头条顶部标签和底部内容的动态解决方案
  14. 基于TF-IDF的新闻标签提取
  15. Java泛型概念
  16. 201521123009 《Java程序设计》第13周学习总结
  17. mysql与PHP建立连接实现增删查改
  18. Windows 安装补丁的另外一种方法
  19. 伪分布式&amp;&amp;完全分布式&amp;&amp;高可用(zookeeper)的配置文件内容
  20. Python+Selenium学习--简单对象定位

热门文章

  1. Java Web(七) JSTL标签库
  2. 【转】jqGrid学习之参数
  3. 每天一个linux命令(38)--lsof 之FD文件描述符
  4. x86_64的内存映射
  5. 如何快速的学习selenium工具
  6. 【mac版】前端开发工具整理
  7. java poi 从服务器下载模板写入数据再导出
  8. js对象继承的问题
  9. MySQL优化四(优化表结构)
  10. wemall软件交易平台微信图文编辑器部分代码分享