Android快速SDK(25)动画库Animation
2015-11-11 17:57
330 查看
代码:http://download.csdn.net/detail/huangbin95487710/9261465
依赖包模式
对话框,悬浮框动画【Anim】package General.Animation; import android.app.Dialog; import android.content.Context; import android.view.View; import android.view.animation.Animation; import android.view.animation.AnimationUtils; import android.widget.PopupWindow; import app.general.lib.R; /** * 动画脚本 * * @author HuangYi * @see QQ:95487710 **/ public class Anim { /** * 从下往上弹动画 * */ public static final int ANIM_BOTTOM_TOP = 0; /** * 从右往左弹动画 * */ public static final int ANIM_RIGHT_LEFT = 1; public static void setAnimBottomToTop(PopupWindow mView) { setAnimationStyle(mView, R.style.BootomToTopAnim); } public static void setAnimationStyle(PopupWindow mView, int mAnimStyle) { if (mView == null || mAnimStyle <= 0) return; mView.setAnimationStyle(mAnimStyle); } public static void setAnimBottomToTop(Dialog mView) { setAnimationStyle(mView, R.style.BootomToTopAnim); } public static void setAnimationStyle(Dialog mView, int mAnimStyle) { if (mView == null || mAnimStyle <= 0) return; mView.getWindow().setWindowAnimations(mAnimStyle); } public static void setAnimBottomToTop(Context mContext, View mView) { setAnimationStyle(mContext, mView, R.anim.bottom_to_top_in); } public static void setAnimationStyle(Context mContext, View mView, int mAnimId) { if (mContext == null || mView == null || mAnimId <= 0) return; Animation alphaAnimation = AnimationUtils.loadAnimation(mContext, mAnimId); mView.setAnimation(alphaAnimation); } }
布局动画【AnimLayout】
package General.Animation; import android.view.ViewGroup; import android.view.animation.Animation; import android.view.animation.RotateAnimation; /** * 布局动画 * * @author HuangYi * @see QQ:95487710 **/ public class AnimLayout { // 图标的动画(入动画) public static void startAnimIn(ViewGroup viewgroup, int durationMillis) { viewgroup.setVisibility(0); for (int i = 0; i < viewgroup.getChildCount(); i++) { viewgroup.getChildAt(i).setVisibility(0); viewgroup.getChildAt(i).setClickable(true); viewgroup.getChildAt(i).setFocusable(true); } Animation animation; animation = new RotateAnimation(-180, 0, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 1.0f); animation.setFillAfter(true); animation.setDuration(durationMillis); viewgroup.startAnimation(animation); } // 图标的动画(出动画) public static void startAnimOut(final ViewGroup viewgroup, int durationMillis, int startOffset) { Animation animation; animation = new RotateAnimation(0, -180, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 1.0f); animation.setFillAfter(true); animation.setDuration(durationMillis); animation.setStartOffset(startOffset); animation.setAnimationListener(new Animation.AnimationListener() { @Override public void onAnimationStart(Animation arg0) { } @Override public void onAnimationRepeat(Animation arg0) { } @Override public void onAnimationEnd(Animation arg0) { viewgroup.setVisibility(8); for (int i = 0; i < viewgroup.getChildCount(); i++) { viewgroup.getChildAt(i).setVisibility(8); viewgroup.getChildAt(i).setClickable(false); viewgroup.getChildAt(i).setFocusable(false); } } }); viewgroup.startAnimation(animation); } }
相关文章推荐
- Android M中需要Runtime申请的权限
- Android之SurfaceView学习
- android 快捷键
- android休眠唤醒驱动流程分析【转】
- TextView的升级版———AutoCompleteTextView
- Android 判断一个点是否在封闭的Path内或不规则的图形内
- android webview加载/data/data/pkg/files/目录下html文件
- Android 输入系统之InputReader篇
- android kernel 源码 分析
- AndroidMainfest.xml文件详解
- Android利用Volley异步加载(JSON和图片)完整示例
- 关于Android 软键盘覆盖布局问题
- Android-Universal-Image-Loader 学习笔记(五)线程池分析
- android 使用百度地图Mapview黑屏状态
- Android 5.0(Lollipop)中的SurfaceTexture,TextureView, SurfaceView和GLSurfaceView
- Android加载Html的方法+NetworkOnMainThreadException异常
- Android 自定义View及其在布局文件中的使用示例
- Android Canvas API总结和使用方法
- 利用androguard来检查apk中得权限
- Android开发实践(二)