我正在使用objectAnimator在Android中从下到上动画一个按钮 . 现在我使用下面的代码
ObjectAnimator transAnimation = ObjectAnimator.ofFloat(button,"translationY",0,440);
transAnimation.setDuration(440);
transAnimation.start();
我也试过下面的示例代码 . 但问题仍然存在
ObjectAnimator transAnimation = ObjectAnimator.ofFloat(loginLayout, "translationY",0f,0.8f);
transAnimation.setDuration(480);
transAnimation.start();
它适用于大屏幕设备 . 但是当谈到小屏幕设备时,它就会离开屏幕 . 无论屏幕大小不同,我都希望将其保留在屏幕顶部 . 我想我必须给出百分比值(比如0%到100%或0到100%p) . 所以我的问题是如何在Android中的objectAnimator中给出百分比值 . 我还注意到这个objectAnimator只在HoneyComb中引入了一件事 . 那么是否有任何向后兼容库可以在低版本中运行它 . 任何人都可以指导我找到解决方案 .
我还尝试在 offset()
中扩展View并为该属性编写getter和setter . 它仍然没有完全移动到屏幕顶部 . 这是我用过的代码 .
@SuppressLint("NewApi") public float getXFraction()
{
int width = context.getWindowManager().getDefaultDisplay().getHeight();
return (width == 0) ? 0 : (getY());
}
@SuppressLint("NewApi") public void setXFraction(float xFraction) {
int width = context.getWindowManager().getDefaultDisplay().getWidth();
setY((width > 0) ? (width) : 0);
}
提前致谢
4 回答
要在预蜂窝设备上使用
ObjectAnimator
,请将NineOldAndroids库添加到项目中,并将导入更改为使用com.nineoldandroids.animation.ObjectAnimator
.要在
ObjectAnimator
中使用百分比值而不是getXFraction
和setXFraction
,您必须添加getYFraction
和setYFraction
这样的方法然后你可以像这样创建xml文件
project-folder/res/animator/move_bottom.xml
或者在代码中创建动画
如果要使用ObjectAnimator从屏幕外部创建动画 . 您可以使用Android显示大小执行此操作 .
对不起,如果我的建议错过了这一点 .
尝试使用ObjectAnimator的自定义属性,而不是使用自定义属性创建自定义视图,您可以创建一个接受“小数”的自定义属性:
我这样做了,我花了太多时间,但它会节省你的时间 .
Arguments:
View (您的支持人员查看)
Parent width (您的视图的根)
Child width (您要在其上应用动画)
% (您想要移动对象或视图的百分比)
不要害怕参数,我在这里通过例子解释 .
XML 和 JAVA 代码:
activity_main.xml :
MainActivity.java :
在 onCreate() :
Method:
How 来调用 Method :
Its Done .