Nano Hash - криптовалюты, майнинг, программирование

Вопрос об анимации макета Android

Я пытаюсь анимировать переход, но это не дает мне правильных результатов.

У меня есть макет, который выглядит так:

  • LinearView Root
    • ScrollView Groups
      • LinearView
        • Tile1
        • Плитка2
        • Плитка3
    • ScrollView SubGroups
      • LinearView
        • Tile4
        • Плитка5
        • Плитка6

Ориентация Root задана горизонтальной, а ширина и высота Groups и SubGroups установлены на родительскую заливку.

Что я хочу, так это анимировать Groups, переводящееся влево за пределы экрана, чтобы по-прежнему отображалось только ~ 40 dp, и SubGroups, переводящееся влево прямо за Groups, чтобы отображалась только полоска Groups, а 90% SubGroups было видно. .

Это возможно? Спасибо за любую помощь!


Ответы:


1

я думаю, вы хотите сделать так:

TranslateAnimation animateGroups = new TranslateAnimation(0,widthScreen - 40 , 0 , 0);
animateGroups.setDuration(1200);
animateGroups.setFillAfter(true);

TranslateAnimation animateSubGroups = new TranslateAnimation(0,widthScreen - 10 , 0 , 0);
animateSubGroups.setDuration(1200);
animateSubGroups.setFillAfter(true);

scrollViewGroups.startAnimation(animateGroups);
scrollViewSubGroups.startAnimation(animateSubGroups);

Примечание. вы можете получить размеры экрана с помощью класса DiplayMetrics, и если вы хотите преобразовать пиксели в dp, см. это

РЕДАКТИРОВАТЬ: Изменить место ваших представлений после окончания анимации, чтобы сделать это, вы должны добавить слушателя к вашей анимации,

animateGroups.addAnimationListener(AnimationListener);

и переопределить метод следующим образом:

 @Override
 public void onAnimationEnd(Animation animation){
scrollViewGroups.setPadding(0, 0 , screenWidth-40 , 0 ) ;
//or you can set the Margin like this(i supposed that your scrollView is in a RelativeLayout 
RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams)scrollViewGroups.getLayoutParams();
params.setMargin(0, 0 , screenWidth-40 , 0);
scrollViewGroups.setLayoutParams(params);
}
25.05.2011
  • Спасибо за анимацию! У меня есть 2 вопроса, однако, после того, как анимация запустилась, первая группа (та, что движется за пределы экрана) правильная, а вторая группа (подгруппа) вообще не отображается? Есть ли что-то, что мне нужно сделать, чтобы установить видимость в true? Кроме того, после завершения анимации я заметил, что координаты щелчка не отражают перевод. Например, одну из моих кнопок можно щелкнуть, щелкнув место, где она была до воспроизведения анимации, а не ее новое местоположение. Спасибо за любую помощь, которую вы можете предоставить :) 26.05.2011
  • Мы здесь, чтобы помочь ; что касается анимации, это просто эффект, и все, и когда я устанавливаю для FillAfter значение true, это означает, что представление сохраняется в последней позиции, когда анимация заканчивается (это просто визуально, реальное место всех ваших представлений не изменится, поэтому если вы хотите изменить место вашего просмотра, см. мою правку 26.05.2011
  • Спасибо за обновления. Установка заполнения для scrollViewGroups не обновляла место для представления, а только расположение элементов внутри представления. Есть ли способ установить фактическое положение видов, чтобы отразить текущий кадр анимации? 26.05.2011
  • примените дополнение к scrollViews, и если это не сработает, вы можете использовать SetMargins, снова посмотрите мое редактирование 26.05.2011
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..