Android:LayoutAnimation、布局动画

简介:

布局动画主要相关属性:

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


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



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,如需转载请自行联系原作者
目录
相关文章
|
22天前
|
ARouter Android开发
Android不同module布局文件重名被覆盖
Android不同module布局文件重名被覆盖
|
3月前
|
存储 Shell Android开发
基于Android P,自定义Android开机动画的方法
本文详细介绍了基于Android P系统自定义开机动画的步骤,包括动画文件结构、脚本编写、ZIP打包方法以及如何将自定义动画集成到AOSP源码中。
68 2
基于Android P,自定义Android开机动画的方法
|
3月前
|
移动开发 监控 前端开发
构建高效Android应用:从优化布局到提升性能
【7月更文挑战第60天】在移动开发领域,一个流畅且响应迅速的应用程序是用户留存的关键。针对Android平台,开发者面临的挑战包括多样化的设备兼容性和性能优化。本文将深入探讨如何通过改进布局设计、内存管理和多线程处理来构建高效的Android应用。我们将剖析布局优化的细节,并讨论最新的Android性能提升策略,以帮助开发者创建更快速、更流畅的用户体验。
63 10
|
12天前
|
Android开发 UED
Android 中加载 Gif 动画
【10月更文挑战第20天】加载 Gif 动画是 Android 开发中的一项重要技能。通过使用第三方库或自定义实现,可以方便地在应用中展示生动的 Gif 动画。在实际应用中,需要根据具体情况进行合理选择和优化,以确保用户体验和性能的平衡。可以通过不断的实践和探索,进一步掌握在 Android 中加载 Gif 动画的技巧和方法,为开发高质量的 Android 应用提供支持。
|
1月前
|
ARouter Android开发
Android不同module布局文件重名被覆盖
Android不同module布局文件重名被覆盖
93 0
|
3月前
|
编解码 Android开发
【Android Studio】使用UI工具绘制,ConstraintLayout 限制性布局,快速上手
本文介绍了Android Studio中使用ConstraintLayout布局的方法,通过创建布局文件、设置控件约束等步骤,快速上手UI设计,并提供了一个TV Launcher界面布局的绘制示例。
52 1
|
4月前
|
XML Android开发 数据格式
Android 中如何设置activity的启动动画,让它像dialog一样从底部往上出来
在 Android 中实现 Activity 的对话框式过渡动画:从底部滑入与从顶部滑出。需定义两个 XML 动画文件 `activity_slide_in.xml` 和 `activity_slide_out.xml`,分别控制 Activity 的进入与退出动画。使用 `overridePendingTransition` 方法在启动 (`startActivity`) 或结束 (`finish`) Activity 时应用这些动画。为了使前 Activity 保持静止,可定义 `no_animation.xml` 并在启动新 Activity 时仅设置新 Activity 的进入动画。
88 12
|
4月前
|
Android开发 Kotlin
kotlin开发安卓app,如何让布局自适应系统传统导航和全面屏导航
使用`navigationBarsPadding()`修饰符实现界面自适应,自动处理底部导航栏的内边距,再加上`.padding(bottom = 10.dp)`设定内容与屏幕底部的距离,以完成全面的布局适配。示例代码采用Kotlin。
127 15
|
3月前
|
XML 数据可视化 API
Android经典实战之约束布局ConstraintLayout的实用技巧和经验
ConstraintLayout是Android中一款强大的布局管理器,它通过视图间的约束轻松创建复杂灵活的界面。相较于传统布局,它提供更高灵活性与性能。基本用法涉及XML定义约束,如视图与父布局对齐。此外,它支持百分比尺寸、偏移量控制等高级功能,并配有ConstraintSet和编辑器辅助设计。合理运用可显著提高布局效率及性能。
220 0