读书人

android学习之TransitionDrawable 兑现

发布时间: 2012-08-27 21:21:57 作者: rapoo

android学习之TransitionDrawable 实现变化效果
Drawable的例子,体现出Drawable的强大功能。Android SDK中说明了Drawable主要的作用是:在XML中定义各种动画,然后把 XML当作Drawable资源来读取,通过Drawable显示动画。

下面举个使用TransitionDrawable 的例子,创建一个Android工程,然后再这个工程的基础上修改,修改过程如下:
1、去掉layout/main.xml中的TextView,增加ImagView,如下:



过渡中的图片



最后的图片




屏幕上动画显示的是:从图片image_expand.png过渡到image_collapse.png,也就是我们在expand_collapse.xml中定义的一个transition动画。看完这个例子,你对Drawable的理解是否又深入些?这里提供这个程序的源代码,供大家下载,可以在这个例子的基础上去体会其他的Drawable,来加深对Drawable的理解。

总结说明
通过以上2个例子程序,相信对Drawable会有一定的认识了,在以后的篇幅中会介绍更多的例子,更加深入的学习和理解Drawable。具体还有哪些Drawable,大家到Android SDK去深入学习吧。



转贴至:http://www.moandroid.com/?p=784

实例:







实现上图效果:

xml部份文件:

 



hand_icon.xml




hand.xml



代码部份:

mDrawer = (SlidingDrawer) findViewById(R.id.slidingdrawer);  final SlidingDrawer drawer = mDrawer;  mLinearLayout = (LinearLayout) drawer.getContent();  final LinearLayout grid = mLinearLayout;   mImageView = (ImageView) drawer.findViewById(R.id.handle);  mHandleIcon = (TransitionDrawable) mImageView.getDrawable();  mHandleIcon.setCrossFadeEnabled(true);   final DrawerManager drawerManager = new DrawerManager();  drawer.setOnDrawerOpenListener(drawerManager);  drawer.setOnDrawerCloseListener(drawerManager);  drawer.setOnDrawerScrollListener(drawerManager); private class DrawerManager implements SlidingDrawer.OnDrawerOpenListener,   SlidingDrawer.OnDrawerCloseListener,   SlidingDrawer.OnDrawerScrollListener {  private boolean mOpen;  public void onDrawerOpened() {   Log.v(tag, "onDrawerOpened");   if (!mOpen) {    mHandleIcon.reverseTransition(150);    mOpen = true;   }  }  private void offsetBoundsToDragLayer(Rect bounds, View view) {   view.getDrawingRect(bounds);   Log.v(tag, "offsetBoundsToDragLayer");  }  public void onDrawerClosed() {   Log.v(tag, "onDrawerClosed");   if (mOpen) {    mHandleIcon.reverseTransition(150);    mOpen = false;   }  }  public void onScrollStarted() {   if (PROFILE_DRAWER) {    android.os.Debug.startMethodTracing("/sdcard/launcher-drawer");   }  }  public void onScrollEnded() {   if (PROFILE_DRAWER) {    android.os.Debug.stopMethodTracing();   }  } }

读书人网 >Android

热点推荐