Android:LayoutAnimation、布局动画

布局动画主要相关属性:

1
2
3
4
5
/*
  * 行列间的延迟
  * android:rowDelay="75%"
  * android:columnDelay="60%"
  */


模范系统范例修改,通过动画效果显示系统的应用图标:

212541905.png

212543387.png



java代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
public  class  MainActivity  extends  Activity
{
     /**
      * 行列间的延迟
      * android:rowDelay="75%"
      * android:columnDelay="60%"
      */
     @Override
     protected  void  onCreate(Bundle savedInstanceState)
     {
         super .onCreate(savedInstanceState);
                                      
         loadApps();
                                      
         setContentView(R.layout.layout_animation_6);
         GridView grid = (GridView) findViewById(R.id.grid);
         grid.setAdapter( new  AppsAdapter());
     }
                                  
     private  List<ResolveInfo> mApps;
                                  
     private  void  loadApps()
     {
         Intent mainIntent =  new  Intent(Intent.ACTION_MAIN,  null );
         mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);
                                      
         mApps = getPackageManager().queryIntentActivities(mainIntent,  0 );
     }
                                  
     public  class  AppsAdapter  extends  BaseAdapter
     {
         public  View getView( int  position, View convertView, ViewGroup parent)
         {
             ImageView i =  new  ImageView(MainActivity. this );
                                          
             ResolveInfo info = mApps.get(position % mApps.size());
                                          
             i.setImageDrawable(info.activityInfo.loadIcon(getPackageManager()));
             i.setScaleType(ImageView.ScaleType.FIT_CENTER);
             final  int  w = ( int ) ( 36  * getResources().getDisplayMetrics().density +  0 .5f);
             i.setLayoutParams( new  GridView.LayoutParams(w, w));
             return  i;
         }
                                      
         public  final  int  getCount()
         {
             return  Math.min( 32 , mApps.size());
         }
                                      
         public  final  Object getItem( int  position)
         {
             return  mApps.get(position % mApps.size());
         }
                                      
         public  final  long  getItemId( int  position)
         {
             return  position;
         }
     }
}



layout属性设置:

1
2
3
4
5
6
7
8
9
10
11
<GridView xmlns:android= "http://schemas.android.com/apk/res/android"
     android:id= "@+id/grid"
     android:layout_width= "match_parent"
     android:layout_height= "match_parent"
     android:columnWidth= "60dp"
     android:gravity= "center"
     android:horizontalSpacing= "10dp"
     android:layoutAnimation= "@anim/layout_wave_scale"
     android:numColumns= "auto_fit"
     android:stretchMode= "columnWidth"
     android:verticalSpacing= "10dp"  />



布局动画layout_wave_scale设置:

1
2
3
4
5
<gridLayoutAnimation xmlns:android= "http://schemas.android.com/apk/res/android"
         android:rowDelay= "75%"
         android:columnDelay= "60%"
         android:directionPriority= "none"
         android:animation= "@anim/wave_scale"  />


wave_scale为控件动画文件。系统范例为:com.example.android.apis.view:LayoutAnimation1。






本文转自 glblong 51CTO博客,原文链接:http://blog.51cto.com/glblong/1226232,如需转载请自行联系原作者
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值