3

いくつかの調査を行ったところ、展開されたステータスバー領域にプログレスバーを表示できることがわかりましたが、アニメーションアイコンが可能かどうかはまだわかりません。私はこの質問の答えを試しました:通知バーのカスタムビューのアニメーション。ただし、アイコンはアニメーション化されていません。それが不可能な場合は、それを確認するドキュメントを教えていただけますか?前もって感謝します。

4

1 に答える 1

2

あなたが参照した質問のビデオ(私が見なかったことは私が与えたリンクの1つと同じであったことを認めます)は、そこにアニメーションアイコンをはっきりと示しています。0時35分頃。 http://www.youtube.com/watch?v=yNcs-sS2nFU&t=0m32s(このリンクはその部分にジャンプします)。矢印には小さな黒い線が繰り返し下に移動します。私にはアニメーションのようです。それはあなたが望むものですか?

とにかく、それはどのAndroidバージョンにありますか?多分それはT-Mobileのカスタムなものかもしれません、私にはわかりません、それはYouTubeのほんの一部のビデオです。

通知のカスタムビューを作成できます。次に例を示します。http : //www.roman10.net/android-custom-notification-with-progress-bar/アニメーションドローアブル で同様のアイデアを使用できる場合があります(同じもう一度質問してください)Roman10がデフォルトのAndroidイメージを取得した場所。

RemoteViews contentView = new RemoteViews(getPackageName(), R.layout.noti);
contentView.setImageViewResource(... your animated resource ...);

編集

したがって、結局のところ、RemoteViewsは、私が知る限り、画像リソースのアニメーションをサポートしていません。しかし、私はそれを回避する方法を考え出し、それはおそらく高価ですが、CPU使用率がどのようになっているかを確認するためにそれをプロファイルしていません。

私はroman10(上記のリンク)のコードから始めて、いくつかの変更を加えました。

yinyangAnim.xml+アニメーションフレーム.pngファイル

<?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/yinyang0" android:duration="150" />
    <item android:drawable="@drawable/yinyang1" android:duration="150" />
    <item android:drawable="@drawable/yinyang2" android:duration="150" />
    <item android:drawable="@drawable/yinyang3" android:duration="150" />
    <item android:drawable="@drawable/yinyang4" android:duration="150" />
    <item android:drawable="@drawable/yinyang5" android:duration="150" />    
</animation-list>

スタートボタンをクリックして、別のスレッド作成を追加します。

             new Thread(new Runnable() {
                    public void run() {
                        int frameIndex = 0;
                        mRun = true;
                        while (mRun) {
                            ++frameIndex;
                            SystemClock.sleep(100);
                            BitmapDrawable frame = (BitmapDrawable) yinyangAnimation.getFrame(frameIndex);
                            noti.contentView.setImageViewBitmap(R.id.status_icon, frame.getBitmap());
                            nm.notify(STATUS_BAR_NOTIFICATION, noti);
                            if (frameIndex >= yinyangAnimation.getNumberOfFrames()-1) {
                                frameIndex = 0;
                            }
                        }

                    }
                  }).start();

ProgressBarNotificationActivity.onCreate()に追加します

     ImageView yinyang = new ImageView(this);
     yinyang.setBackgroundResource(R.drawable.yinyang_anim);
     yinyangAnimation = (AnimationDrawable) yinyang.getBackground();

そしてもちろん、プライベート変数:private AnimationDrawable yinyangAnimation;

アプリのスタートボタンを押して通知を表示すると、回転している陰陽が表示されます。loadinfo.netで陰陽を取得し、ImageMagickコマンドライン(ubuntu)を使用して分割しました。

于 2012-09-07T21:50:56.843 に答える