当广播来时,menuitem在动作栏上闪烁

时间:2014-01-30 12:25:46

标签: android android-animation android-view android-menu

我正在尝试使用GCM实现推送通知。在我收到广播的活动中,我想要一个菜单​​项,以便用户知道有些东西等待阅读。

我尝试了以下代码: -

Animation mAnimation = new AlphaAnimation(1, 0);
mAnimation.setDuration(200);
mAnimation.setInterpolator(new LinearInterpolator());
mAnimation.setRepeatCount(Animation.INFINITE);
mAnimation.setRepeatMode(Animation.REVERSE); 
menuItem.startAnimation(mAnimation);

然而,最后一行给了我错误,它说“方法startAnimation是未定义的menuItem”,这是真的,因为我实现它为按钮所以我做了什么,我将它命名为查看和改变最后一行

((View) menuAlert).startAnimation(mAnimation);

然而它给了我类强制转换异常。如何让这个菜单闪烁。

LayoutInflater inflater = (LayoutInflater) getApplication()
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                ImageView iv = (ImageView) inflater.inflate(R.layout.imagelayout,
                null);

                Animation rotation = AnimationUtils.loadAnimation(getApplication(),
                R.anim.alert_rotate);
                rotation.setRepeatCount(Animation.INFINITE);
                rotation.setDuration(200);
                iv.startAnimation(rotation);
                menuAlert.setVisible(true);
                menuAlert.setActionView(iv);
                iv.setOnClickListener(new OnClickListener() {

                    @Override
                    public void onClick(View v) {
                        menuAlert.getActionView().clearAnimation();
                        menuAlert.setActionView(null);
                        lbltitle.setTypeface(null, Typeface.BOLD);
                        lbltitle.setText(Html.fromHtml("<u>" +broadcastTitle +"</u>"));
                        lblMessage.loadData(broadcastMessage, "text/html", "UTF-8");
                        m.setVisible(false);
                        k.setVisible(false);
                        menuAlert.setVisible(false);

                    }
                });

我做了一个资源布局,在那里我放了一个Imageview,然后我制作了一个动画资源进行轮换,然后我写了上面的代码,它确实有效。

1 个答案:

答案 0 :(得分:1)

检查一下。

MenuItem item = menu.findItem(R.id.action_settings);

        ImageView imgView = new ImageView(this);
        imgView.setBackground(getResources().getDrawable(R.drawable.ic_launcher));
        item.setActionView(imgView);

        imgView.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                Toast.makeText(HorizontalScrollView.this, "onCLicked imgView", Toast.LENGTH_SHORT).show();

                Animation mAnimation = new AlphaAnimation(1, 0);
                mAnimation.setDuration(200);
                mAnimation.setInterpolator(new LinearInterpolator());
                mAnimation.setRepeatCount(Animation.INFINITE);
                mAnimation.setRepeatMode(Animation.REVERSE);

                MenuItem item = menu.findItem(R.id.action_settings);
                item.getActionView().startAnimation(mAnimation);

            }
        });