2011-08-16 3 views
8

私はAndroidアプリのためにそれを与える速度で立ち上がるスクロールカウンタを作成したいと思います。これはSDKでこれをうまく実行するAndroidウィジェットがないように思えます。このアイデアを中心としたオープンソースプロジェクトをより良いものにする。Androidでナンバーカウンターを作成する方法は?

画像の例: Scrolling Counter

+1

+1この種類のウィジェットにも興味があります。 – pkk

+0

あなたの写真の例のように、液体アニメーション、ぼかし、半角数字を表示したいと思っていますか? –

+0

これは最良のケースですが、私はこのようなものをいくつか学んでいますので、もっと基本的なものを受け入れることになります –

答えて

1

私はあなたのスクリーンショットでは、この特定のカウンタは、次の1個の数から各遷移のために、いくつかの短いアニメーション(約5または10フレーム)を持っていることをかなり確信しています。実際に特定の番号で停止しなくても、よりぼかしを表示することなく、素早いトランジションを表示するための機能もあります。

メインタスクはグラフィックを作成することです。次に、適切なタイミングで適切なフレームを表示するだけです。

+0

これは素晴らしいスタートですが、私はグラフィックやアニメーションの作業には全く慣れていません。 –

5

これは完璧な答えではないかもしれませんが、少なくとも出発点です。アニメーションや一般的な見栄えを犠牲にすることなく、TextViewをいくつかの派手なXMLで飾るだけで、ほとんどの方法をそこで得ることができます。私は数年前にチップ計算機のために同様の見た目の画面領域を作るために何をしたのかを共有します:

ここにXMLがあります。それぞれの1桁は1つのTextViewなので、個別に変更することができます。私はここに2つを示しているが、明らかに、以下のスクリーンショットのための5があった。ここで

<shape xmlns:android="http://schemas.android.com/apk/res/android" 
android:shape="rectangle"> 
<stroke android:width="1dip" 
     android:color="#fbbb" 
/> 
<solid android:color="#600000"/> 
<layout_margin android:layout_margin="1dip"/> 
<gradient 
    android:startColor="#000000" 
    android:centerColor="#6D6D6D" 
    android:endColor="#000000" 
    android:angle="270" 
/> 
は(のLinearLayout内)、最終的な結果です:

Number Counter

<TextView 
    android:id="@+id/tv1" 
    android:layout_width="60dip" 
    android:layout_height="140dip" 
    android:background="@drawable/gradient" 
    android:textSize="64sp" 
    android:gravity="center" 
    android:typeface="serif" 
    android:textColor="#FFFFFF" 
/> 
<TextView 
    android:id="@+id/tv2" 
    android:layout_width="60dip" 
    android:layout_height="140dip" 
    android:background="@drawable/gradient" 
    android:textSize="64sp" 
    android:gravity="center" 
    android:typeface="serif" 
    android:textColor="#FFFFFF" 
/> 

そして、 "描画可能/勾配は、" 私は別の描画可能なファイルとして作成しました

+0

これは素晴らしいです。テキストビューの変更をアニメーション化できるかどうかを見ると、私のニーズに合ったものになるかもしれません。 –

+0

それを聞いてうれしいです。私の実装では、ユーザーは各TextViewの上部または下部のいずれかを押して数値を上下に変更することができ、アニメーションは必要ありませんでした。あなたがそれらを必要とするならば、私はTextViewがまだ行く方法であるかどうか分からない。 –

+0

私は、ユーザーが効果を発揮する率で上昇しているカウンターをアニメーション化していますが、これは本当に良いスタートです。アニメーションが必要なのは、それがはるかにきれいに見えてから数がリフレッシュされるからです。 –

2

raggedToadの回答に加えて、ViewAnimatorカウンターにアニメーションを追加するクラス。その使いやすい。それを拡張して、すべての数字のテキストビューをonCreate()に追加することができます。インクリメント操作を処理するメソッドincrementを実装します。 showNextに電話すると、次のビューに切り替えることができます。

+0

ありがとうございます。今私は古い学校のカウンターでそれを試してみるかもしれません! :) –

+0

私は、画像に数字の帯を作り、画面上の一部の画像のみを表示し、動いている部分をアニメートして、最後に達したら画像を繰り返すことはできますか? –

1

あなたがしようとしていることを正確に行うオープンソースプロジェクトがあります。 チェック:http://code.google.com/p/android-wheel/

+0

これは非常によく見えますが、私はそれをピッカーとして使用しないでしょうが、私はこの足を自分の必要とするように見なければなりません –

関連する問題