2014-10-15 2 views
0

Итак, у меня есть простое представление, которое определено в xml, и то, что я хочу сделать, это использовать жест onScroll, изменить высоту представления. Единственная проблема заключается в том, что LayoutParams ожидает целочисленные значения, тогда как изменение расстояния, предоставляемое onScroll, является значением float. Как изменить размер этой высоты без потери точности поплавка?Измените высоту представления программно с помощью значения float (Android)

Вот что я имею в OnScroll метод:

int newHeight = mTopView.getHeight() + (int)distanceY; 
if (newHeight <= maxHeight) { 
    mTopView.setLayoutParams(new LinearLayout.LayoutParams(mTopView.getWidth(), newHeight)); 
} 
+1

лить его в целое число – Elltz

+0

Я уже это делаю. Я пытаюсь найти способ не потерять точность поплавка и тем самым обеспечить более плавную анимацию. – liquidpenguins

+1

Размеры LayoutParams находятся в пикселях, которые являются наименьшим возможным элементом на экране; вы не можете потерять точность. –

ответ

0

Как уже упоминалось Яап ван Hengstum: «Размеры LayoutParams в пикселях, который является наименьшим возможным единицы на экране, вы не можете потерять точность "

Так что просто поместите это float в int (и, возможно, используйте int newHeight = (int) (высота + 0.5f), снова предложенный Jaap), и все будет гладко и круто.