android 学习笔记(1)
内容来源:高成珍、钟元生《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).//---设置消息的目标对象
android 学习笔记(1)的更多相关文章
- Android 学习笔记之Volley(七)实现Json数据加载和解析...
学习内容: 1.使用Volley实现异步加载Json数据... Volley的第二大请求就是通过发送请求异步实现Json数据信息的加载,加载Json数据有两种方式,一种是通过获取Json对象,然后 ...
- Android学习笔记进阶之在图片上涂鸦(能清屏)
Android学习笔记进阶之在图片上涂鸦(能清屏) 2013-11-19 10:52 117人阅读 评论(0) 收藏 举报 HandWritingActivity.java package xiaos ...
- android学习笔记36——使用原始XML文件
XML文件 android中使用XML文件,需要开发者手动创建res/xml文件夹. 实例如下: book.xml==> <?xml version="1.0" enc ...
- Android学习笔记之JSON数据解析
转载:Android学习笔记44:JSON数据解析 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,为Web应用开发提供了一种 ...
- udacity android 学习笔记: lesson 4 part b
udacity android 学习笔记: lesson 4 part b 作者:干货店打杂的 /titer1 /Archimedes 出处:https://code.csdn.net/titer1 ...
- Android学习笔记36:使用SQLite方式存储数据
在Android中一共提供了5种数据存储方式,分别为: (1)Files:通过FileInputStream和FileOutputStream对文件进行操作.具体使用方法可以参阅博文<Andro ...
- Android学习笔记之Activity详解
1 理解Activity Activity就是一个包含应用程序界面的窗口,是Android四大组件之一.一个应用程序可以包含零个或多个Activity.一个Activity的生命周期是指从屏幕上显示那 ...
- Pro Android学习笔记 ActionBar(1):Home图标区
Pro Android学习笔记(四八):ActionBar(1):Home图标区 2013年03月10日 ⁄ 综合 ⁄ 共 3256字 ⁄ 字号 小 中 大 ⁄ 评论关闭 ActionBar在A ...
- 【转】Pro Android学习笔记(九八):BroadcastReceiver(2):接收器触发通知
文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注册等附加条件.转载须注明出处:http://blog.sina.com.cn/flowingflying或作者@恺风Wei-傻瓜与非傻瓜 广播接 ...
- 【转】 Pro Android学习笔记(九二):AsyncTask(1):AsyncTask类
文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注册等附加条件.转载须注明出处:http://blog.csdn.net/flowingflying/ 在Handler的学习系列中,学习了如何h ...
随机推荐
- 为 .NET Core 设计一个 3D 图形渲染库
原文地址:https://mellinoe.wordpress.com/2017/02/08/designing-a-3d-rendering-library-for-net-core/ 作者:ERI ...
- input输入自动大写
方法1:使用JS <input name="text" type="text" onkeyup="this.value=this.value.t ...
- 用DotRas来连接VPN网络
最近要用程序来不断的连接VPN(为什么要这样就不讨论了),开始用的是如下代码: public static bool ADSL() { bool flag = true; do { Console.W ...
- springmvc 获取request 和 java路径分隔符 在windows 和linux 下自动判断的方法
//获取requert HttpServletRequest request = ((ServletRequestAttributes)RequestContextHolder.getRequestA ...
- 【新建项目&使用viewPager】实现一个Android电子书阅读APP
本章结尾处已放出应用DEMO,已经实现所有本文及后续文章所述全部功能,大家可以先下载下来玩玩看,欢迎在本文下方评论,小方很需要鼓励支持!!! 新建一个项目 呼-我们即将步入安卓开发之旅了,首先要新建一 ...
- 【UWP】Gank 干货集中营 客户端
简介 一个偶然的机会,在网上看到了 <「代码家」的学习过程和学习经验分享>,知道了代码家做的Gank网站. 干货集中营 每日分享妹子图 和 技术干货,还有供大家中午休息的休闲视频 在看过一 ...
- 关于Dapper.NET的相关论述
年少时,为何不为自己的梦想去拼搏一次呢?纵使头破血流,也不悔有那年少轻狂.感慨很多,最近事情也很多,博客也很少更新了,毕竟每个人都需要为自己的生活去努力. 最近在一个群里遇到一个人说的话,在这里不再赘 ...
- thinkphp apicloud 下拉刷新 。。。由于新人里面导入了vue.js
//刷新 apiready = function(){ var count; var i= 1; var param = {}; toDoRequest(); param.loadingImgae = ...
- vue组件最佳实践
看了老外的一篇关于组件开发的建议(强烈建议阅读英文原版),感觉不错翻译一下加深理解. 这篇文章制定一个统一的规则来开发你的vue程序,以至于达到一下目的. 1.让开发者和开发团队更容易发现一些事情. ...
- 【解题报告】VijosP1448校门外的树(困难版)
原题: 校门外有很多树,有苹果树,香蕉树,有会扔石头的,有可以吃掉补充体力的--如今学校决定在某个时刻在某一段种上一种树,保证任一时刻不会出现两段相同种类的树,现有两个操作:K=1,K=1,读入l.r ...