0

ActionBar Sherlock ( Stackoverflow Link )を使用してアクション バーにアニメーション アイテムを追加するための解決策をいくつか見つけました。

デフォルトのアクション バーのみを使用する場合の例はありますか?

リンクにあるアプローチを試してみましたが、ボタンのアニメーションが作成されます。問題は、actionVIew が設定された後、ボタンがアクション バー内に配置されたままになることです。

4

1 に答える 1

4

私はプロジェクトのためにそれをしなければなりませんでした。ImageView をサブクラス化し、そのクラスをメニュー項目のアクション ビューとして使用するだけです。

package com.---.events.android;

import android.content.Context;
import android.graphics.drawable.AnimationDrawable;
import android.os.Handler;
import android.util.AttributeSet;
import android.widget.ImageView;

public class AnimatedImageView extends ImageView {

    public AnimatedImageView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
    }

    public AnimatedImageView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public AnimatedImageView(Context context) {
        super(context);
    }

    public void initializeAnimation(){
        setImageDrawable(null);
        setBackgroundAnimation();
        AnimationDrawable da = (AnimationDrawable) getBackground();
        da.start();
    }

    public void setBackgroundAnimation() {
        setBackgroundResource(R.drawable.logo_animation); // this is an animation-list
    }

    @Override
    protected void onAttachedToWindow() {
        super.onAttachedToWindow();
        Handler handler = new Handler();
        final AnimatedImageView me = this; 
        handler.post(new Runnable(){
            public void run() {
                me.initializeAnimation();
            }
        });
    }
}

メニュー XML から Action View を指定する方法は次のとおりです。

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+id/menu_animation"
          android:title="test"
          android:showAsAction="always" 
          android:actionViewClass="com.--.events.android.AnimatedImageView" />
</menu>
于 2012-11-12T20:01:28.057 に答える