为了账号安全,请及时绑定邮箱和手机立即绑定

Android - 不同屏幕尺寸的 animate() 问题

Android - 不同屏幕尺寸的 animate() 问题

婷婷同学_ 2023-05-24 16:33:25
我在使用不同屏幕尺寸的 animate() 时遇到了这个问题。我在我的 s9+ 中测试所有内容,当我在 Moto g3 上测试相同内容时,我使用 animate().translationY 设置动画的布局是一场灾难。所以我在谷歌上搜索了一下,当然我是以错误的方式做事的。我在这里发现我必须使用这段代码:Float distance = TypedValue.applyDimension(                 TypedValue.COMPLEX_UNIT_DIP, 770,                 getResources().getDisplayMetrics()         );(770)是我的价值。进而cardViewBottom.animate().translationY(distance).setDuration(1);但我没有取得好成绩。在我的 s9+ 中,770 是正确的值,而在我的 moto g3(较小的设备)中,该值是 560。我不知道该怎么办。
查看完整描述

1 回答

?
温温酱

TA贡献1752条经验 获得超4个赞

尝试这个:


val metrics = DisplayMetrics()

windowManager?.defaultDisplay?.metrics(metrics)

val width = metrics.density


val distance = TypedValue.applyDimension(

                TypedValue.COMPLEX_UNIT_DIP, width,

                resources.displayMetrics)

不确定 TypedValue.applyDimension 的参数是什么 如果你需要像素那么metrics.widthPixels


查看完整回答
反对 回复 2023-05-24
  • 1 回答
  • 0 关注
  • 79 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信