Добавить эффект Pulse в один элемент моего Coverflow - PullRequest
0 голосов
/ 26 мая 2020

Я реализовал Coverflow, используя https://github.com/moondroid/CoverFlow, он работает хорошо, но я хотел бы анимировать значок перед моим потоком обложек, вы знаете, как я могу это сделать? Я пробовал, но анимация применяется ко всем компонентам, что мне действительно нужно, так это анимировать только значок, который находится в основной позиции потока покрытия

Мой код выглядит следующим образом

    private FeatureCoverFlow coverFlow;
    private IconAdapter menuAdapter;
    private List<Menu> menuList = new ArrayList<>();
    private TextSwitcher mTitle;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


        initData();

        mTitle = findViewById(R.id.title);


        mTitle.setFactory(new ViewSwitcher.ViewFactory() {
            @Override
            public View makeView() {
                LayoutInflater inflater = LayoutInflater.from(MainActivity.this);
                TextView txt = (TextView) inflater.inflate(R.layout.layout_title, null);
                return txt;

            }
        });

        Animation in = AnimationUtils.loadAnimation(this, R.anim.slide_in_top);
        Animation out = AnimationUtils.loadAnimation(this, R.anim.slide_out_bottom);
        Animation heartbeat = AnimationUtils.loadAnimation(this,R.anim.heartbeat);

        mTitle.setInAnimation(in);
        mTitle.setOutAnimation(out);


        menuAdapter = new IconAdapter(menuList, this);
        coverFlow = findViewById(R.id.coverFlow);
        coverFlow.setAdapter(menuAdapter);




        coverFlow.setOnScrollPositionListener(new FeatureCoverFlow.OnScrollPositionListener() {
            @Override
            public void onScrolledToPosition(int position) {
                mTitle.setText(menuList.get(position).getName());

            }

            @Override
            public void onScrolling() {


            }
        });

        coverFlow.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int i, long id) {

                if(menuAdapter.getItemId(i) == 4) {
                    startActivity(new Intent(MainActivity.this, OperacaoActivity.class));

                }

                    else if (menuAdapter.getItemId(i)== 5) {
                    startActivity(new Intent(MainActivity.this, OperacaoActivity.class));
                }

                 else if (menuAdapter.getItemId(i)== 2) {
                    startActivity(new Intent(MainActivity.this, ManualActivity.class));
                }

                 else if (menuAdapter.getItemId(i)== 3) {
                    startActivity(new Intent(MainActivity.this, ManualActivity.class));

                }
            else {
                }//   startActivity(new Intent(MainActivity.this,OperacaoActivity.class));
                //}
            }
        });

    }
    private void initData(){

        menuList.add(new Menu("Operação",R.drawable.ic_launcher_background));
        menuList.add(new Menu("Manual",R.drawable.logo));
        menuList.add(new Menu("Configuração",R.drawable.ic_launcher_background));
        menuList.add(new Menu("Informações",R.drawable.logo));

    }
}
...