TranslateAnimation参数单位

头号大宝贝 2013-12-18 11:09:46
我做了一个动画效果,让图片向上浮动一段距离。图片中设置有属性:
marginTop="300dp"

这样图片会距离顶部300dp的距离。
之后图片通过TranslateAnimation动画向上浮动300dp。但是,在不同的设备中浮动的距离就也不同。
TranslateAnimation ani = new TranslateAnimation(0, 0, 0,-300);
我应该传入的参数是什么类型的? 以300dp为基础单位,转换成px,转换成sp。都试过。都不行,在不同的设备中浮动并不固定。


而这些代做的是,打开程序,让UI界面中的图片向上浮动,并且定位。
...全文
237 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
依然绿茶 2013-12-18
  • 打赏
  • 举报
回复
marginTop="@dimen/margin_top_height" dimens.xml中定义: <dimen name="margin_top_height">300dip</dimen> float yOffset = getResources().getDimension(R.dimen.margin_top_height); TranslateAnimation ani = new TranslateAnimation(0, 0, 0, -yOffset);
头号大宝贝 2013-12-18
  • 打赏
  • 举报
回复
引用 1 楼 ncepu307 的回复:
marginTop="@dimen/margin_top_height" dimens.xml中定义: <dimen name="margin_top_height">300dip</dimen> float yOffset = getResources().getDimension(R.dimen.margin_top_height); TranslateAnimation ani = new TranslateAnimation(0, 0, 0, -yOffset);
抱歉,是我思路错了~ani.setFillAfter(true); 可以解决问题。
头号大宝贝 2013-12-18
  • 打赏
  • 举报
回复
引用 1 楼 ncepu307 的回复:
marginTop="@dimen/margin_top_height" dimens.xml中定义: <dimen name="margin_top_height">300dip</dimen> float yOffset = getResources().getDimension(R.dimen.margin_top_height); TranslateAnimation ani = new TranslateAnimation(0, 0, 0, -yOffset);
一样的,虽然marginTOP是300dip,但是这样获取的数值上移会依然会超过父容器。 我是想,让图片上移,再定到移动的位置。不知道还有别的办法没? 设置ani.setFillAfter(true); 虽然可以定位,但是其它空间再绑定别的ani时,这个图片的ani会继续播放……

80,472

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧