Android学习2013年10月11日
1.LinearLayout http://www.cnblogs.com/salam/archive/2010/10/20/1856793.html
LinearLayout是线性布局控件,它包含的子控件将以横向或竖向的方式排列,按照相对位置来排列所有的widgets或者其他的containers,超过边界时,某些控件将缺失或消失。因此一个垂直列表的每一行只会有一个widget或者是container,而不管他们有多宽,而一个水平列表将会只有一个行高(高度为最高子控件的高度加上边框高度)。LinearLayout保持其所包含的widget或者是container之间的间隔以及互相对齐(相对一个控件的右对齐、中间对齐或者左对齐)。
2.居中
- <LinearLayout
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:gravity="center|center_horizontal|center_vertical" >
- // 上面gravity属性的参数:center为居中,center_horizontal为水平居中,center_vertical为垂直居中
- <Button
- android:id="@+id/Binding_button"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="关联新账户" />
- </LinearLayout>
-------------------
- <RelativeLayout xmlns:Android="http://schemas.android.com/apk/res/android"
- Android:layout_width="fill_parent" Android:layout_height="fill_parent">
- <Button Android:id="@+id/btngal" Android:layout_width="wrap_content"
- Android:layout_height="wrap_content" Android:gravity="center_horizontal"
- Android:textSize="20sp" Android:layout_alignParentBottom="true"
- Android:layout_centerHorizontal="true" Android:text="返回主界面" />
- </RelativeLayout>
3.alphaAnimation
AlphaAnimation 透明度动画效果
ScaleAnimation 缩放动画效果
TranslateAnimation 位移动画效果
RotateAnimation 旋转动画效果
Animation也可以放在XML文件中,这样程序的可维护性提高了。在XML中写动画的步骤如下
1.在res文件夹下面新建一个名为anim的文件夹
2.创建xml文件,并首先加入set标签,改标签如下
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_interpolator">
</set>
3.在该标签当中加入rotate,alpha,scale或者translate标签
4.在代码当中使用AnimationUtils加载xml文件,并生成Animation对象
Alpha动画
- <span style="font-size:18px;"><?xml version="1.0" encoding="utf-8"?>
- <set xmlns:android="http://schemas.android.com/apk/res/android"
- android:interpolator="@android:anim/accelerate_interpolator">
- <alpha
- android:fromAlpha="1.0"
- android:toAlpha="0.0"
- android:startOffset="500"
- android:duration="2000"
- />
- </set></span>
Animation a=AnimationUtils.loadAnimation(this, R.anim.alpha);
iv.startAnimation(a);
http://blog.csdn.net/zhy_cheng/article/details/7951092
下面将对上述代码,做详细的解释,listView在开始绘制的时候,系统首先调用getCount()函数,根据他的返回值得到listView的长度(这也是为什么在开始的第一张图特别的标出列表长度),然后根据这个长度,调用getView()逐一绘制每一行。如果你的getCount()返回值是0的话,列表将不显示同样return 1,就只显示一行。
系统显示列表时,首先实例化一个适配器(这里将实例化自定义的适配器)。当手动完成适配时,必须手动映射数据,这需要重写getView()方法。系统在绘制列表的每一行的时候将调用此方法。getView()有三个参数,position表示将显示的是第几行,covertView是从布局文件中inflate来的布局。我们用LayoutInflater的方法将定义好的vlist2.xml文件提取成View实例用来显示。然后将xml文件中的各个组件实例化(简单的findViewById()方法)。这样便可以将数据对应到各个组件上了。但是按钮为了响应点击事件,需要为它添加点击监听器,这样就能捕获点击事件。至此一个自定义的listView就完成了,现在让我们回过头从新审视这个过程。系统要绘制ListView了,他首先获得要绘制的这个列表的长度,然后开始绘制第一行,怎么绘制呢?调用getView()函数。在这个函数里面首先获得一个View(实际上是一个ViewGroup),然后再实例并设置各个组件,显示之。好了,绘制完这一行了。那 再绘制下一行,直到绘完为止。在实际的运行过程中会发现listView的每一行没有焦点了,这是因为Button抢夺了listView的焦点,只要布局文件中将Button设置为没有焦点就OK了。
在写listView 时候要重写BaseAdapter
需要在没个item都加上button 点击button做相应操作
这个时候需要button里面设置下这行的属性
button.setTag(item.user.name);
然后处理button事件。
这个东西在一些需要用到Adapter自定控件显示方式的时候非常有用
Adapter 有个getView方法,可以使用setTag把查找的view缓存起来方便多次重用
最新文章
- DLL编程学习
- c#网络通信框架networkcomms内核解析之九 自定义处理方法的运行机制
- SAM4E单片机之旅——20、DMAC之使用Multi-buffer进行内存拷贝
- 添加Pods后,import无提示的解决办法
- android 开源项目学习
- y combinator 做的一个调查_可以学习一下
- <;php>;PDO链接方法
- [转]jQuery插件开发精品教程,让你的jQuery提升一个台阶
- 数据结构&mdash;&mdash;左高树
- 【iOS知识学习】_UITableView简介
- ecshop3.6商品如何按照销量排序
- JVM虚拟机(一) 内存区域
- thymeleaf-迭代
- 【Swift 3.0】iOS 国际化切换语言
- Docker镜像构建
- Sitecore开发 IP地理定位服务入门
- Cortex-M3的一些概念
- 学习windows编程 day3 之窗口绘画二:边框绘制函数
- Linux:DNS服务器搭建及配置
- 【网络编程三】网络通信之多进程(线程)实现TCP通信(一)
热门文章
- _bzoj1029 [JSOI2007]建筑抢修【贪心 堆】
- XHTML 1.0 的三种 XML 文档类型 DOCTYPE
- javaFx 学习笔记
- Suricata的初始化脚本
- 百度地图API简单初始化
- maven-ali镜像网站setting.xml
- 【转】java编程思想第20章的注解例子用到的com.sun.mirror的jar包
- 【学习笔记】深入理解js原型和闭包(10)——this
- BottomNavigationBar底部导航条用法
- ubuntu 下service php5-fpm restart 报错 stop: Unknown instance: 解决