安卓笔记:为View设置VISIBLE、GONE的时候添加过度动画
【摘要】
直接上代码:
1、VISIBLE动画
TranslateAnimation showAnim = new TranslateAnimation(Animation.RELATIVE_TO_SELF, 1.0f, Animation.RELATIVE_TO_SELF, 0.0f, Animation.RELATIV...
直接上代码:
1、VISIBLE动画
-
TranslateAnimation showAnim = new TranslateAnimation(Animation.RELATIVE_TO_SELF, 1.0f,
-
Animation.RELATIVE_TO_SELF, 0.0f,
-
Animation.RELATIVE_TO_SELF, 0.0f,
-
Animation.RELATIVE_TO_SELF, 0.0f);
-
showAnim.setDuration(500);
-
view.startAnimation(showAnim);
-
view.setVisibility(View.VISIBLE);
2、GONE动画
-
TranslateAnimation hideAnim = new TranslateAnimation(Animation.RELATIVE_TO_SELF, 0.0f,
-
-
Animation.RELATIVE_TO_SELF, 1.0f,
-
-
Animation.RELATIVE_TO_SELF, 0.0f,
-
-
Animation.RELATIVE_TO_SELF, 0.0f);
-
-
hideAnim.setDuration(500);
-
-
view.startAnimation(hideAnim);
-
-
view.setVisibility(View.GONE);
这里,最重要的是TranslateAnimation,进入这个构造函数:
-
/**
-
-
* Constructor to use when building a TranslateAnimation from code
-
-
*
-
-
* @param fromXType Specifies how fromXValue should be interpreted. One of
-
-
* Animation.ABSOLUTE, Animation.RELATIVE_TO_SELF, or
-
-
* Animation.RELATIVE_TO_PARENT.
-
-
* @param fromXValue Change in X coordinate to apply at the start of the
-
-
* animation. This value can either be an absolute number if fromXType
-
-
* is ABSOLUTE, or a percentage (where 1.0 is 100%) otherwise.
-
-
* @param toXType Specifies how toXValue should be interpreted. One of
-
-
* Animation.ABSOLUTE, Animation.RELATIVE_TO_SELF, or
-
-
* Animation.RELATIVE_TO_PARENT.
-
-
* @param toXValue Change in X coordinate to apply at the end of the
-
-
* animation. This value can either be an absolute number if toXType
-
-
* is ABSOLUTE, or a percentage (where 1.0 is 100%) otherwise.
-
-
* @param fromYType Specifies how fromYValue should be interpreted. One of
-
-
* Animation.ABSOLUTE, Animation.RELATIVE_TO_SELF, or
-
-
* Animation.RELATIVE_TO_PARENT.
-
-
* @param fromYValue Change in Y coordinate to apply at the start of the
-
-
* animation. This value can either be an absolute number if fromYType
-
-
* is ABSOLUTE, or a percentage (where 1.0 is 100%) otherwise.
-
-
* @param toYType Specifies how toYValue should be interpreted. One of
-
-
* Animation.ABSOLUTE, Animation.RELATIVE_TO_SELF, or
-
-
* Animation.RELATIVE_TO_PARENT.
-
-
* @param toYValue Change in Y coordinate to apply at the end of the
-
-
* animation. This value can either be an absolute number if toYType
-
-
* is ABSOLUTE, or a percentage (where 1.0 is 100%) otherwise.
-
-
*/
-
-
public TranslateAnimation(int fromXType, float fromXValue, int toXType, float toXValue,
-
-
int fromYType, float fromYValue, int toYType, float toYValue) {
-
-
mFromXValue = fromXValue;
-
-
mToXValue = toXValue;
-
-
mFromYValue = fromYValue;
-
-
mToYValue = toYValue;
-
-
mFromXType = fromXType;
-
-
mToXType = toXType;
-
-
mFromYType = fromYType;
-
-
mToYType = toYType;
-
-
}
可以看到,这个构造函数主要是传入设置起始点坐标(x,y)、终点坐标(x,y),每个坐标值对应一个类型type。
Animation.RELATIVE_TO_SELF代表着坐标以当前view为基准。
0.0f即0%,代表view初始位置坐标;
1.0f即100%,代表以view初始位置为原点,相应x坐标/y坐标增加父宽度/父高度的100%;
-
TranslateAnimation showAnim = new TranslateAnimation(Animation.RELATIVE_TO_SELF, 1.0f,
-
-
Animation.RELATIVE_TO_SELF, 0.0f,
-
-
Animation.RELATIVE_TO_SELF, 0.0f,
-
-
Animation.RELATIVE_TO_SELF, 0.0f);
表示从(1.0f,0.0f)移动到(0.0f,0.0f),即view从屏幕右侧不可见区域移动到初始位置,符合VISIBLE效果。
-
new TranslateAnimation(Animation.RELATIVE_TO_SELF, 0.0f,
-
-
Animation.RELATIVE_TO_SELF, 1.0f,
-
-
Animation.RELATIVE_TO_SELF, 0.0f,
-
-
Animation.RELATIVE_TO_SELF, 0.0f);
表示从(0.0f,0.0f)移动到(1.0f,0.0f),即view从初始位置移动到屏幕右侧不可见区域,符合GONE效果。
文章来源: chengsy.blog.csdn.net,作者:程思扬,版权归原作者所有,如需转载,请联系作者。
原文链接:chengsy.blog.csdn.net/article/details/82661550
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)