我正在创建一个类似于速度级别的应用程序。
如果你走得快,我的图像会上升,如果你走得很慢,它会下降(不是顶部,上部越快,下部越慢)。
目前,在每个onLocationChange上,我计算推荐的速度并获得实际值。然后我就像这样移动图像:
imageView.setY((float) speedvalue);
我有两个问题: setY以像素为单位,因此不适合每个屏幕。
图像立即移动,我希望它像动画一样移动。
我该如何解决?
答案 0 :(得分:1)
您可以为此视图的移动设置动画:
TranslateAnimation animation = new TranslateAnimation(startXCoordinate, finishXCoordinate, startYCoordinate, finishYCoordinate);
animation.setDuration(1000);
view.startAnimation(animation);
其次,使用此代码将像素转换为dps,它将在不同的屏幕上移动相同的数量:
int distanceToMove = (int) TypedValue.applyDimension(1, howManyDPsToMove, context.getResources().getDisplayMetrics());