使用浮点值以编程方式更改视图高度(Android)
因此,我所拥有的只是一个在xml中定义的简单视图,我想做的是使用onScroll手势,更改该视图的高度。唯一的问题是LayoutParams需要整数值,而onScroll提供的距离更改是一个浮点值。如何调整此高度而不丢失浮动的精度 以下是onScroll方法中的内容:使用浮点值以编程方式更改视图高度(Android),android,view,gesture,onscrolllistener,Android,View,Gesture,Onscrolllistener,因此,我所拥有的只是一个在xml中定义的简单视图,我想做的是使用onScroll手势,更改该视图的高度。唯一的问题是LayoutParams需要整数值,而onScroll提供的距离更改是一个浮点值。如何调整此高度而不丢失浮动的精度 以下是onScroll方法中的内容: int newHeight = mTopView.getHeight() + (int)distanceY; if (newHeight <= maxHeight) { mTopView.setLayoutParam
int newHeight = mTopView.getHeight() + (int)distanceY;
if (newHeight <= maxHeight) {
mTopView.setLayoutParams(new LinearLayout.LayoutParams(mTopView.getWidth(), newHeight));
}
正如Jaap van Hengstum提到的:LayoutParams的尺寸以像素为单位,这是屏幕上可能的最小单位;你不能失去精确性
所以只需将浮点值转换为int,可能使用int newHeight=int height+0.5f;Jaap再次提出建议,一切都会顺利、冷静。我已经这么做了。我试图找到一种不丢失浮点精度的方法,从而提供更平滑的动画;你不能失去精度。所以将它转换为整数应该可以吗?你可以将它四舍五入到最接近的整数:int newHeight=int height+0.5f;这将是你能得到的最精确的,但我怀疑它与普通演员相比会有明显的不同。