布局动画主要相关属性:
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,如需转载请自行联系原作者