Я пробовал анимировать floatActionButton, чтобы получить меню в Android, но в устройствах с API < 21 получить перевод и API> = 21 перевод меньше. Я получил этот код:Как анимировать FloatingActionButton на разных устройствах и получить тот же результат?
private void translate(View view, float factor, int time){
TranslateAnimation translate = new TranslateAnimation(0, 0, factor * view.getHeight(), 0);
translate.setDuration(time);
view.startAnimation(translate);
}
и после этого метода просто называют перевод()
FloatingActionButton fab_mini = (FloatingActionButton) getActivity().findViewById(R.id.fab_3);
translate(fab_mini, 1.5f, 400);
fab_mini.setTranslationY(-fab_mini.getHeight() * 1.5f);
fab_mini.setVisibility(View.VISIBLE);
fab_mini.setClickable(true);
Проблема заключается в том, что кнопки показывают друг над другом в некоторых устройствах (я пробовал в Android 5.0.1) а в других устройствах (Android 4.3 и 4.2.2) кнопки отображаются с правильным пространством между ними (0.5 * button.getHeight() или тем же переводом = 1.5).
Я пробовал, но бесполезно. Параметры для конструкторов TranslateAnimation() имеют размеры на пиксель (px) или независимый пиксель (dp) ?? View.getheight() возвращает пиксели, но я не знаю, нужны ли конструктору TranslateAnimation для px или dp для анимации. –