Подтвердить что ты не робот

Android: просмотр и выход Fade

Мне нужно отобразить кнопку изображения, которая исчезает и выходит (и в и из и так далее...) Прозрачность может быть установлена ​​с помощью setAlpha, но как я могу затухать? Я имею в виду, что я не могу сделать это в другом потоке, потому что вам нужно делать такие вещи в потоке пользовательского интерфейса, правильно?

Я думаю, это можно сделать с помощью анимаций, но я ничего не нашел, потому что у меня нет опыта работы с анимацией и не знаю, что искать...

На самом деле я действительно хочу, чтобы вытереть одно изображение и другое, но я думаю, что самый простой способ - разместить первую кнопку изображения под вторым и просто затушить вторую. Или есть более простой способ сделать это?

4b9b3361

Ответ 1

Вот решение, которое я использую сейчас, которое работает на уровне API ниже 12:

AlphaAnimation anim = new AlphaAnimation(1.0f, 0.0f);
anim.setDuration(1000);
anim.setRepeatCount(NUM_REPEATS);
anim.setRepeatMode(Animation.REVERSE);
button.startAnimation(anim);

Ответ 2

Это анимация, которую мы использовали в нашем проекте. Spinner - это представление, поэтому вы можете изменить его с помощью своего изображения. Так что действительно 2 изображения поверх каждого другого, один видимый невидимый. Так мы это сделали. Надеюсь, что это поможет.

    spinner.setVisibility(View.VISIBLE);
    spinner.setAlpha(0);

    spinner.animate().setDuration(200).alpha(1).setListener(new AnimatorListenerAdapter() {
        @Override
        public void onAnimationEnd(Animator animation) {
            spinner.setVisibility(View.VISIBLE);
        }
    });

     infoActivityContent.animate().setDuration(200).alpha(0).setListener(new AnimatorListenerAdapter() {
       @Override
       public void onAnimationEnd(Animator animation) {
            infoActivityContent.setVisibility(View.GONE);

       mainPresenter.logout();
       }
     });

Ответ 3

Вы должны прочитать Crossfading Two Views от Android developers. В этом руководстве объясняется, как сделать то, что вы хотите.

Ответ 4

Внедрить класс анимации (вы можете загрузить его через XML или создать его динамически).

Затем вы можете установить его через API setAnimation (анимация анимации).

Ответ 5

Вы можете сделать несколько последовательных кадров вашего первого изображения, преобразующегося во второе изображение и обратно, а затем определить их как animation-list и начать анимацию в onCreate

button_frames.xml:

   <?xml version="1.0" encoding="utf-8"?>
      <animation-list xmlns:android="http://schemas.android.com/apk/res/android" >
        <item android:drawable="@drawable/frame1" android:duration="100" />
        <item android:drawable="@drawable/frame2" android:duration="100" />
                   ....

расположение:

  <ImageView android:id="@+id/button" 
       android:background="@drawable/button_frames"/>

OnCreate:

   ImageView button= (ImageView)findViewById(R.id.button);
   mAnimation = (AnimationDrawable) animationView.getBackground();
   button.postDelayed(new Runnable() {
       public void run() {
         mAnimation.start();
       }
   }, 100);