Как я могу добавить AnimationDrawable для фона ViewPager?

У меня возникают проблемы при попытке добавить AnimationDraweble для первого фона экрана ViewPager. Идея состоит в том, чтобы активировать анимацию на первом экране и скрыть ее с помощью прокрутки до остальных страниц. Проблема в том, что когда я возвращаюсь со второй страницы, он возобновляется с самого последнего фрейма, но при возвращении с третьей страницы или из другого действия сначала он застревает, а затем перезапускается с первого фрейма.


Это мой класс PagerAdapter:

public class SignUpAdapter extends PagerAdapter implements Observer {

    private AVLoadingIndicatorView progressBar;
    private CallbackManager callbackManager;
    private LayoutInflater layoutInflater;
    private FloatingTextButton chatBtn;
    private LoginButton facebookBtn;
    private Context context;
    private TextView title_1;
    private TextView title_2;
    private ImageView image;
    private TextView text;
    private View view;

    private AnimationDrawable background;

    public SignUpAdapter(Context context, CallbackManager callbackManager) {
        this.context = context;
        this.callbackManager = callbackManager;
        ObservableObject.getInstance().addObserver(this);
    }

    public int[] slideImages = {
            0,
            R.drawable.chat_logo,
            R.drawable.headphone_logo
    };

    public String[] slideHeadings = {
            "",
            "Free Chat",
            "Supporting system"
    };


    @Override
    public Object instantiateItem(final ViewGroup container, int position) {
        layoutInflater = (LayoutInflater) 
       context.getSystemService(context.LAYOUT_INFLATER_SERVICE);
        view = layoutInflater.inflate(R.layout.sign_up_adapter, container, false);

        image = (ImageView) view.findViewById(R.id.slideImage);
        image.setImageResource(slideImages[position]);

        text = (TextView) view.findViewById(R.id.heading);
        text.setText(slideHeadings[position]);
        title_1 = (TextView) view.findViewById(R.id.title_1);
        title_2 = (TextView) view.findViewById(R.id.title_2);

        chatBtn = (FloatingTextButton) view.findViewById(R.id.ChatBtn);
        facebookBtn = (LoginButton) view.findViewById(R.id.facebookLoginBtn);
        facebookBtn.setReadPermissions("email", "public_profile");


        progressBar = (AVLoadingIndicatorView) view.findViewById(R.id.progressBar);
        progressBar.hide();
        Log.d("pos", String.valueOf(position));
        switch (position) {
            case 0:
                view.setBackgroundResource(R.drawable.change_screen);
                background = (AnimationDrawable) view.getBackground();
                background.setEnterFadeDuration(2000);
                background.setExitFadeDuration(2000);
                background.start();
                setVisibility(View.VISIBLE, View.GONE, View.GONE);
                break;
            case 1:
                background.stop();
                setVisibility(View.GONE, View.VISIBLE, View.GONE);
                chatBtn.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View view) {
                        chatBtn.setEnabled(true);
                        logAnonymously();
                    }
                });
                break;
            case 2:
                setVisibility(View.GONE, View.GONE, View.VISIBLE);
                facebookBtn.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        loginWithFaceBook();
                    }
                });
                break;
        }
        container.addView(view);
        return view;
    }


    @Override
    public int getCount() {
        return slideHeadings.length;
    }

    @Override
    public boolean isViewFromObject(View view, Object object) {
        return view == (RelativeLayout) object;
    }

    @Override
    public void destroyItem(ViewGroup container, int position, Object object) {
        container.removeView((RelativeLayout) object);
    }


    public void setVisibility(int vis1, int vis2, int vis3) {
        title_1.setVisibility(vis1);
        title_2.setVisibility(vis1);
        chatBtn.setVisibility(vis2);
        facebookBtn.setVisibility(vis3);
    }
}

Это файл change_screen.xml:

<?xml version="1.0" encoding="UTF-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
    android:oneshot="false">


    <item android:drawable="@drawable/img1"
        android:duration="2000" />

    <item android:drawable="@drawable/img2"
        android:duration="2000" />

    <item android:drawable="@drawable/img3"
        android:duration="2000" />

    <item android:drawable="@drawable/img4"
        android:duration="2000" />

    <item android:drawable="@drawable/img5"
        android:duration="2000" />

    <item android:drawable="@drawable/img6"
        android:duration="2000" />


</animation-list>

0 ответов

Другие вопросы по тегам