Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/194.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用浮点值以编程方式更改视图高度(Android)_Android_View_Gesture_Onscrolllistener - Fatal编程技术网

使用浮点值以编程方式更改视图高度(Android)

使用浮点值以编程方式更改视图高度(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

因此,我所拥有的只是一个在xml中定义的简单视图,我想做的是使用onScroll手势,更改该视图的高度。唯一的问题是LayoutParams需要整数值,而onScroll提供的距离更改是一个浮点值。如何调整此高度而不丢失浮动的精度

以下是onScroll方法中的内容:

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;这将是你能得到的最精确的,但我怀疑它与普通演员相比会有明显的不同。