#android
#Android
Вопрос:
Я хотел бы перевести кнопку из ее относительного положения в нижнюю часть экрана.
Я выполняю TranslateAnimation с использованием Java-кода.
Ниже приведен фрагмент кода того, что я уже сделал:
Display display = getWindowManager().getDefaultDisplay();
int screenHeight = display.getHeight();
translateButtonAnimation = new TranslateAnimation(Animation.RELATIVE_TO_SELF, Animation.RELATIVE_TO_SELF, Animation.RELATIVE_TO_SELF, height);
В результате кнопка вылетает за пределы экрана эмулятора !! : (
Заранее спасибо за вашу помощь.
Ответ №1:
Вы могли бы попробовать что-то вроде этого:
Animation toBottom =
new TranslateAnimation(
Animation.RELATIVE_TO_PARENT, x,
Animation.RELATIVE_TO_PARENT, 0.0f,
Animation.RELATIVE_TO_PARENT, -1.0f,
Animation.RELATIVE_TO_PARENT, 0.0f);
toBottom.setDuration(350);
toBottom.setInterpolator(new AccelerateInterpolator());
чтобы убедиться, что она находится в конце вашего экрана.
x
и y
обозначают текущее положение вашего Button
.
Комментарии:
1. Тогда, пожалуйста, предоставьте свой исходный макет с точным описанием перевода, которое вы хотите, и не давайте нам гадать, что у вас, возможно, уже есть, и что вы собираетесь делать (поскольку этот код, а также @Kevin’s, также функциональны в простом
RelativeLayout
виде). Спасибо!
Ответ №2:
таким образом вы можете избежать переноса кнопки за пределы экрана (код peseudo):
traslation= screenheight-(actualButtonposition.y)
translateButtonAnimation = new TranslateAnimation(Animation.RELATIVE_TO_SELF, Animation.RELATIVE_TO_SELF, Animation.RELATIVE_TO_SELF, height);