0

境界線の色がタイマーに基づいて実行時に動的に変化し続けるビューを実装することを計画しています。たとえば、最初はビューの境界線が緑色 (タイマー = 20 秒) で、1 秒ごとに緑色が消え、ビューの半分以上 (タイマー = 10 秒) になると... 境界線の色がオレンジ色に変わり、タイマーの終わり (タイマー = 5 秒) に達すると、赤色になり、電話が振動するはずです (簡単に行うことができます)。
これを実装する1つの方法は、バックエンドタイマーを持ち、それに基づいて「n」個のドローアブルを持ち、ビューの背景を毎秒変更し続けることです。しかし、これには多くの画像が必要であり、これが最適な実装方法だとは思いません。
カスタムビューを作成してサーフェスビューを実装し、その周りで何かをして、これを実行できるかどうか疑問に思っています。誰でもこれを達成する方法について何か考えがありますか? カスタムビューの周りのアニメーションを使用してこれを行うことはできますか? これに関するアイデアは大歓迎です。

前もって感謝します

4

3 に答える 3

2

timertask を実行し、ビューの背景値をスタイルに設定して、ビューの境界線を変更します。お気に入り、

view.setBackground(R.drawable.border_style_green);

そのため、タイマー タスクでは、時間を確認し続け、境界線を変更します。

注 - border_style_green は、ビューに境界線、角丸などを設定できるスタイルを持つ XML ファイルです。

于 2012-04-26T09:51:05.990 に答える
1

私の提案は、Android のアニメーション フレームワークを利用することです。アプリがハニカムより下のバージョンを対象とする場合は、NineOldAndroidsを使用します。

すでに提案されているように、 shapeDrawable をビューに割り当てて境界線を設定します

view.setBackground(R.drawable.border_style_green);

このようにアニメーターを起動します。(このコードは、1000ms で currentColor から赤にアニメーション化されます)

    ObjectAnimator animator = ObjectAnimator.ofFloat(this, "color", currentColor,Color.RED);
    animator.setEvaluator(new ArgbEvaluator());
    animator.setDuration(1000);
    animator.start();

次に、アクティビティで次を実装します。

public void setColor(int color){
            currentColor = color;
    view.getBackground().setColorFilter(color, PorterDuff.Mode.MULTIPLY);
}
于 2012-04-26T10:00:44.503 に答える
0

ビューがhtmlページの場合:この実装にはJqueryを使用します。ajaxを使用すると、バックエンドを呼び出すこともできます。Jquery遅延関数

于 2012-04-26T09:54:10.233 に答える