安卓开发_浅谈Android动画(三)
16lz
2021-01-26
一、LayoutAnimation布局动画
用于为一个layout里面的控件,或者是一个ViewGroup里面的控件设置动画效果
在res-anim文件下新建一个动画xml文件
1 <?xml version="1.0" encoding="utf-8"?> 2 <set xmlns:android="http://schemas.android.com/apk/res/android" 3 android:interpolator="@android:anim/decelerate_interpolator" > 4 5 <scale 6 android:duration="1000" 7 android:fromXScale="0.1" 8 android:fromYScale="0.1" 9 android:pivotX="50%"10 android:pivotY="50%"11 android:toXScale="1.0"12 android:toYScale="1.0" />13 <alpha14 android:duration="1000"15 android:fromAlpha="0"16 android:toAlpha="1.0" />17 </set>zoom_in
list为列表
//布局动画控制器
LayoutAnimationController lac = new LayoutAnimationController(AnimationUtils.loadAnimation(this,R.anim.zoom_in));
//动画方式
lac.setOrder(LayoutAnimationController.ORDER_RANDOM);
//加载布局动画
list.setLayoutAnimation(lac);
//开始动画
list.startLayoutAnimation();
//为列表视图中选中的项添加响应事件
效果图:
全部代码:
1 package other; 2 3 import com.example.allcode.R; 4 5 import android.app.Activity; 6 import android.os.Bundle; 7 import android.view.View; 8 import android.view.animation.AnimationUtils; 9 import android.view.animation.LayoutAnimationController;10 import android.widget.AdapterView;11 import android.widget.AdapterView.OnItemClickListener;12 import android.widget.ListView;13 import android.widget.Toast;14 15 public class Donghua_List extends Activity{16 private ListView list;17 @Override18 protected void onCreate(Bundle savedInstanceState) {19 // TODO Auto-generated method stub20 super.onCreate(savedInstanceState);21 setContentView(R.layout.donghua_layout);22 23 24 list = (ListView) findViewById(R.id.listView1);25 //布局动画控制器26 LayoutAnimationController lac = new LayoutAnimationController(AnimationUtils.loadAnimation(this,R.anim.zoom_in));27 //动画方式28 lac.setOrder(LayoutAnimationController.ORDER_RANDOM);29 //加载布局动画30 list.setLayoutAnimation(lac);31 //开始动画32 list.startLayoutAnimation();33 //为列表视图中选中的项添加响应事件34 list.setOnItemClickListener(new OnItemClickListener() {35 36 @Override37 public void onItemClick(AdapterView<?> parent, View arg1, int pos,38 long id) {39 // TODO Auto-generated method stub40 String result = parent.getItemAtPosition(pos).toString(); //获取选择项的值41 Toast.makeText(Donghua_List.this, "点击了 "+result, Toast.LENGTH_SHORT).show();//输出选中项消息42 }43 });44 }45 46 47 48 }Donghua_list.java
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 7 <ListView 8 android:id="@+id/listView1" 9 android:entries="@array/list" 10 11 android:layout_width="match_parent"12 android:layout_height="wrap_content" >13 </ListView>14 15 </LinearLayout>donghua_layout.xml
动画汇总:
1 <?xml version="1.0" encoding="utf-8"?> 2 <set xmlns:android="http://schemas.android.com/apk/res/android" 3 android:interpolator="@android:anim/decelerate_interpolator" > 4 5 <scale 6 android:duration="1000" 7 android:fromXScale="0.1" 8 android:fromYScale="0.1" 9 android:pivotX="50%"10 android:pivotY="50%"11 android:toXScale="1.0"12 android:toYScale="1.0" />13 <alpha14 android:duration="1000"15 android:fromAlpha="0"16 android:toAlpha="1.0" />17 </set>zoom_in.xml 从右往左
1 <?xml version="1.0" encoding="utf-8"?> 2 <set xmlns:android="http://schemas.android.com/apk/res/android"> 3 4 <translate android:fromXDelta="-100%p" 5 android:toXDelta="0" 6 android:duration="300"/> 7 <alpha android:fromAlpha="0.0" 8 android:toAlpha="1.0" 9 android:duration="300" />10 </set>push_left_in.xml从左往右
1 <?xml version="1.0" encoding="utf-8"?>2 <set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/accelerate_interpolator">3 <translate android:fromYDelta="-100%" android:toXDelta="0" android:duration="300" />4 <alpha android:fromAlpha="0.0" android:toAlpha="1.0" android:duration="300" />5 </set>slide_top_to_bottom.xml 从上往下
1 <?xml version="1.0" encoding="utf-8"?>2 <set xmlns:android="http://schemas.android.com/apk/res/android" 3 android:interpolator="@android:anim/decelerate_interpolator">4 5 <translate android:fromYDelta="100%" android:toXDelta="0" android:duration="300" />6 <alpha android:fromAlpha="0.0" android:toAlpha="1.0" android:duration="300" />7 </set>slide_bottom_to_top.xml从下往上
更多相关文章
- 关于Android中ToolBar返回
- android--(布局ListView、优化、刷新分页、ArrayAdapter、Simple
- 一些优秀的开源项目
- Android(安卓)ConstraintLayout 布局解析
- android开发之interpolator的使用
- android view(2) Activity、Window、DecorView
- 下拉刷新SwipeRefreshLayout源码
- Android(安卓)自定义感光器控件SolarProgressView,也可当做普通Pr
- Android(安卓)动画系统汇总