android中的动画之布局动画

布局动画,顾名思义,通常用来布局上的显示view,为view groups的显示添加动画。

通常我们使用LayoutAnimationController的对象来为view添加一个动画,具体的操作是:先创建一个LayoutAnimationController的对象,然后用相应的view来加载该对象。

接下来我们来看看代码(我在这里展示的是给listview添加动画)

anim文件下的代码

xml代码(这个最主要是用来给listview的每一个view添加动画)

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <set xmlns:android="http://schemas.android.com/apk/res/android">
 3     <scale
 4         android:duration="300"
 5         android:fromXScale="0.0"
 6         android:fromYScale="0.0"
 7         android:toYScale="1.0"
 8         android:toXScale="1.0"
 9         android:pivotX="50%"
10         android:pivotY="50%"
11         />
12
13 </set>

布局文件代码

1.Mainactivity的xml代码

 1  <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 2     xmlns:tools="http://schemas.android.com/tools"
 3     android:layout_width="match_parent"
 4     android:layout_height="match_parent"
 5     android:orientation="vertical"
 6     tools:context="com.example.Tween_Animation.Alpha_MainActivity" >
 7
 8     <Button
 9         android:id="@+id/button_scale"
10         android:layout_width="fill_parent"
11         android:layout_height="wrap_content"
12         android:text="@string/button_stringScaleAnimation" />
13
14     <LinearLayout
15         android:gravity="center"
16         android:layout_width="fill_parent"
17         android:layout_height="fill_parent"
18         android:orientation="vertical" >
19
20         <ImageView
21             android:id="@+id/imageview_scale"
22             android:layout_width="wrap_content"
23             android:layout_height="wrap_content"
24             android:src="@drawable/ic_launcher" />
25     </LinearLayout>
26
27 </LinearLayout>

2.MainActivity2的xml代码

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 3     android:layout_width="match_parent"
 4     android:layout_height="match_parent"
 5     android:orientation="vertical" >
 6     <ListView
 7         android:id="@+id/listview"
 8         android:layout_width="fill_parent"
 9         android:layout_height="wrap_content"
10         />
11
12 </LinearLayout>

Activity代码

1.MainActivity代码

 1 package com.example.Layout_Animation;
 2
 3 import com.example.androidanimation.R;
 4
 5 import android.app.Activity;
 6 import android.content.Intent;
 7 import android.os.Bundle;
 8 import android.view.View;
 9 import android.view.View.OnClickListener;
10 import android.widget.Button;
11
12 public class MainActivity extends Activity implements OnClickListener{
13     private Button button = null;
14     protected void onCreate(Bundle savedInstanceState) {
15         super.onCreate(savedInstanceState);
16         setContentView(R.layout.activity_main);
17         button = (Button) findViewById(R.id.button_scale);
18         button.setOnClickListener(this);
19     }
20     public void onClick(View v) {
21         Intent intent = new Intent(MainActivity.this,MainActivity2.class);
22         startActivity(intent);
23     }
24 }

2.MainActivity2的代码

 1 package com.example.Layout_Animation;
 2
 3 import com.example.androidanimation.R;
 4
 5 import android.app.Activity;
 6 import android.os.Bundle;
 7 import android.view.animation.AnimationUtils;
 8 import android.view.animation.LayoutAnimationController;
 9 import android.widget.ArrayAdapter;
10 import android.widget.ListView;
11
12 public class MainActivity2 extends Activity{
13     private ListView listview = null;
14     private ArrayAdapter<String> arrayadapter = null;
15     protected void onCreate(Bundle savedInstanceState) {
16         super.onCreate(savedInstanceState);
17         setContentView(R.layout.main2);
18         listview = (ListView) findViewById(R.id.listview);
19         String string[] = new String[20];
20         arrayadapter = new ArrayAdapter<String>(this, android.R.layout.simple_expandable_list_item_1, get_array(string));
21         listview.setAdapter(arrayadapter);
22         //创建一个LayoutAnimationController的对象
23         LayoutAnimationController lac = new LayoutAnimationController(AnimationUtils.loadAnimation(this, R.anim.scale));
24         //设置每个子控件动画播放的顺序(中间计算了每个子控件的动画显示时间的)
25         /*
26          * 从安卓api中可以看出,有3个参数供选择
27          * ORDER_NORMAL--顺序显示
28          * ORDER_RANDOM--随机显示
29          * ORDER_REVERSE--倒叙显示
30          */
31         lac.setOrder(LayoutAnimationController.ORDER_RANDOM);
32         listview.setLayoutAnimation(lac);
33     }
34     private String [] get_array(String string[])
35     {
36         for(int i = 0; i < 20; i++)
37         {
38             string[i] = "小米" + (i + 1);
39         }
40         return string;
41     }
42 }
时间: 2024-10-11 21:31:13

android中的动画之布局动画的相关文章

Android 中使用代码动态布局

Android 中使用代码动态布局 本文介绍在android中使用代码动态布局,有时候根据不同的需求,比如需要根据服务器上的条目个数来决定app中页面布局控件(显示个数,图标等).此处介绍通过java代码进行动态布局. 一.效果图: 图片随便找的,将就将就吧 二.给出xml文件布局 <?xml version="1.0" encoding="utf-8"?> <ScrollView xmlns:android="http://schema

android之属性动画和布局动画详解

1.属性动画是什么不废话,不懂的可以百度一下参考郭霖大神的动画详解篇:这里仅仅提供一个demo说说用法,抛砖引玉,代码的注释写的已经很详细,不再多说废话,一下提供的是一个基础的demo,讲解的是objectAnimator的基础用法,如平移.旋转.缩放.渐变以及动画的集合:至于objectAnimator(必须的有set get方法)和valueAnimator的详细区别也可参考郭霖大神的动画详解篇 2.除此基本用法,还有估值器和插值器 (1)插值器:动画速率的变换,有点类似物理的加速度,就是该

android中给Dialog设置的动画如何自定义修改参数

============问题描述============ 在android中给Dialog设置动画的方法我只找到Dialog.getWindow().setWindowAnimation(int resID); 这样不是只能在styles里用xml定义动画吗? 但是我现在想要先用程序计算出一个屏幕上的点,在让Dialog从该点开始执行scaleAnimation. 我如何给我Dialog的动画设置起始点之类的参数呢? ============解决方案1============ 自定义一个dial

源码解析Android中View的layout布局过程

Android中的Veiw从内存中到呈现在UI界面上需要依次经历三个阶段:量算 -> 布局 -> 绘图,关于View的量算.布局.绘图的总体机制可参见博文 < Android中View的布局及绘图机制>.量算是布局的基础,如果想了解量算的细节,可参见博文<源码解析Android中View的measure量算过程>.本文将从源码角度解析View的布局layout过程,本文会详细介绍View布局过程中的关键方法,并对源码加上了注释以进行说明. 对View进行布局的目的是计算

android学习六(android中四种基本布局)

前面学习了android中的基本组件的使用,这一篇,我将总结下android中布局的使用,详细的看下面. 1.LinearLayout LinearLayoutyot又称线性布局,是一种常用的布局,它又可以有水平方向的和垂直方向的布局方式.前面一篇博文基本使用的是线性布局中的垂直布局,这个垂直布局的的方式是有属性android:orientation="vertical"控制的.如果把值指定为horizontal则控件就会在水平方向上排列了.下面我进行实战的操作吧. 新建一个andro

android中使用html作布局文件

在android开发中,通常使用xml格式来描述布局文件.就目前而言,熟悉android布局及美化的人员少之又少,出现了严重的断层.大部分企业,其实还是程序员自己动手布局.这样既浪费时间和精力,也未必能达到理想的效果.但是,在企业级的android开发中,使用html页面进行布局,也有很多的优势(例如:简单,大部分开发人员及美工都熟悉,方便统一进行更新,管理).据笔者了解,已经有不少的公司在使用这种方式进行布局开发.这也可能是一种趋势. 下面,我将给出一个实例代码,供大家学习使用html页面给a

Android中的FrameLayout帧布局

帧布局由FrameLayout所代表,FrameLayout直接继承了ViewGoup组件. 帧布局容器为每个加入其中的组件创建一个空白的区域(称为一个帧),每个子组件占据一帧,这些帧都会根据gravity属性执行自动对齐. 代码: <?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/an

Android动画之视图动画和属性动画

Android 动画分为两大类,分别是视图动画(View Animation)和属性动画(Property Animation).对于这两种动画,都能够使用xml和代码的形式定义动画. 注:布局动画相关博客已经发布,有兴趣可跳转Android动画之布局动画 View Animation 视图动画是Android最基础的动画,在API 1中就已经加入,不需考虑兼容性,但由于其动画只是作用于视图上,而不会由该控件的属性,所以有很多的局限性. 视图动画的基类是Animation其下包含了四个直接的子类

android学习五(android中基本控件的使用)

前面已经学了activity的一些使用,那么下面我们进行android中基本的控件的学习和使用. 1.android中的TextView控件 新建一个项目,项目名为UITest,才有默认的设置,修改布局文件的内容,如下: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" a