首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Android >

android学习之TransitionDrawable 兑现变化效果

2012-08-27 
android学习之TransitionDrawable 实现变化效果Drawable的例子,体现出Drawable的强大功能。Android SDK中说

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();   }  } }

热点排行