2011-01-19 20 views
3

私はAndroid開発が初めてで、アンドロイドのデフォルトのアナログ時計に「秒針」を追加することが可能かどうか疑問に思っていましたか?Androidクロック秒針

私は既にダイヤル、時分針を備えた働く時計を持っています。私は周りを検索し、毎秒時計を更新するためにバックグラウンドで実行されているサービスが必要であることを伝えるいくつかの投稿に出くわしました。これは時計用のウィジェット用で、鉱山はアプリ向けです。

どうすればいいですか?

答えて

1

は、ここでそれを行う方法は次のとおりです。http://developer.android.com/resources/articles/timed-ui-updates.html

警告:本当に速いバッテリーを消耗することをやって!

+0

おかげでたくさんあるので、私はデフォルトのアナログ時計にこれを適用することができますか?ここの例はデジタルタイマーです。ええ、私はそれがクロックが笑を見せている間、それは間違いなく充電する必要があることを働かせることができます。もう一度ありがとう – user581949

+0

私は彼らが使用した例が時計だったことに気づいていなかった:あなたが尋ねたように毎秒UIを更新していることを知っていただけだった –

+0

ああ、ありがとう – user581949

0

時針と分針で時計をすでにレンダリングしている場合、秒針の問題は何ですか?他の手を更新するときとまったく同じように更新してください。更新スレッドの頻度を1秒に増やしてください。

0

はい私のアプリケーションでは、あなたがここでコメントするよりも何かエラーが見つかった場合は、あなたが助けてくれればそれを行っているアンドロイドのアナログ時計に秒針を入れることが可能です。 ここにリンクがyou can find it here in link

0
private ImageView img; 
Handler mHandler; 

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    Thread myThread = null; 

    Runnable runnable = new CountDownRunner(); 
    myThread = new Thread(runnable); 
    myThread.start(); 

} 

public void doRotate() { 

    runOnUiThread(new Runnable() { 
    public void run() { 
    try { 

    Date dt = new Date(); 
    int hours = dt.getHours(); 
    int minutes = dt.getMinutes(); 
    int seconds = dt.getSeconds(); 
    String curTime = hours + ":" + minutes + "::" + seconds; 
    Log.v("log_tag", "Log is here Time is now" + curTime); 
    img = (ImageView) findViewById(R.id.imgsecond); 
    RotateAnimation rotateAnimation = new RotateAnimation(
     (seconds - 1) * 6, seconds * 6, 
     Animation.RELATIVE_TO_SELF, 0.5f, 
     Animation.RELATIVE_TO_SELF, 0.5f); 

    rotateAnimation.setInterpolator(new LinearInterpolator()); 
    rotateAnimation.setDuration(1000); 
    rotateAnimation.setFillAfter(true); 

    img.startAnimation(rotateAnimation); 
    } catch (Exception e) { 

    } 
    } 
    }); 
} 

class CountDownRunner implements Runnable { 
    // @Override 
    public void run() { 
    while (!Thread.currentThread().isInterrupted()) { 
    try { 

    doRotate(); 
    Thread.sleep(1000); 
    } catch (InterruptedException e) { 
    Thread.currentThread().interrupt(); 
    } catch (Exception e) { 
    Log.e("log_tag", "Error is " + e.toString()); 
    } 
    } 
    } 
} 
関連する問題