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.居中

  1. <LinearLayout  
  2.     android:layout_width="fill_parent"  
  3.     android:layout_height="fill_parent"  
  4.     android:gravity="center|center_horizontal|center_vertical" >  
  5.     // 上面gravity属性的参数:center为居中,center_horizontal为水平居中,center_vertical为垂直居中  
  6.     <Button   
  7.         android:id="@+id/Binding_button"   
  8.         android:layout_width="wrap_content"   
  9.         android:layout_height="wrap_content"   
  10.         android:text="关联新账户" />  
  11. </LinearLayout>    

 -------------------

  1. <RelativeLayout xmlns:Android="http://schemas.android.com/apk/res/android"  
  2.   
  3.     Android:layout_width="fill_parent" Android:layout_height="fill_parent">  
  4.     <Button Android:id="@+id/btngal" Android:layout_width="wrap_content"  
  5.   
  6.         Android:layout_height="wrap_content" Android:gravity="center_horizontal"  
  7.   
  8.         Android:textSize="20sp" Android:layout_alignParentBottom="true"  
  9.   
  10.         Android:layout_centerHorizontal="true" Android:text="返回主界面" />  
  11.   </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动画

 

[java] view plaincopy
 
  1. <span style="font-size:18px;"><?xml version="1.0" encoding="utf-8"?>  
  2. <set xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     android:interpolator="@android:anim/accelerate_interpolator">  
  4.     <alpha  
  5.         android:fromAlpha="1.0"  
  6.         android:toAlpha="0.0"  
  7.         android:startOffset="500"  
  8.         android:duration="2000"  
  9.             />  
  10.   
  11. </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缓存起来方便多次重用

posted @ 2013-10-12 19:59  老梅  阅读(155)  评论(0编辑  收藏  举报