Android:LayoutAnimation、布局动画

布局动画主要相关属性:

/*
 * 行列间的延迟
 * android:rowDelay="75%"
 * android:columnDelay="60%"
 */


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



java代码:

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属性设置:

<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设置:

<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。












本文出自 “天空没有痕迹但我飞过” 博客,转载请与作者联系!

你可能感兴趣的:(layoutanimation,布局动画)