2012-12-05 10 views
5

Android programcılığımda yeni biriyim. Bu analog saati ikinci el ile kuvars yerine bir süpürme (kronograf) hareketi yapmak için bir yolu var mı?analog saatte android süpürme ikinci el yapmak nasıl?

Herhangi bir örnek indirmek için?

Ben saat için bu kodu kullanıyorum:

public class SecondHand extends Activity { 
// private Handler mHandler = new Handler(); 
protected static final String TAG = SecondHand.class.getName(); 
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(); 

} 

private void doPlay(){ 
    new Thread(new Runnable() { 

     @Override 
     public void run() { 
      // TODO Auto-generated method stub 

      Log.v("log_tag", "this is seocond thread"); 

     } 
    }).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(); 
       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.setFillAfter(true); 

       img.startAnimation(rotateAnimation); 
      } catch (Exception e) { 
       Log.e("log_tag", "Error msg is " + e.toString()); 

      } 
     } 
    }); 
} 

class CountDownRunner implements Runnable { 
    // @Override 
    public void run() { 
     while (!Thread.currentThread().isInterrupted()) { 
      try { 
       // Log.v("log_tag", "Roate is going"); 
       doRotate(); 
       Thread.sleep(1000); 
       doPlay(); 
       } catch (InterruptedException e) 
       { 
       // Thread.currentThread().interrupt(); 
      } catch (Exception e) { 
       Log.e("log_tag", "Error is " + e.toString()); 
      } 
     } 
    } 
} 
@Override 
protected void onDestroy() { 
    android.os.Process.killProcess(android.os.Process.myPid()); 
} 

cevap

13
 protected static final String TAG = SecondHand.class.getName(); 
     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()); 
    } 
} 
} 
} 

xml dosyası: Bu AWESOME çalışır

 <?xml version="1.0" encoding="utf-8"?> 
     <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
      android:layout_width="wrap_content" android:layout_height="wrap_content" 
      android:gravity="center" android:layout_gravity="center"> 

     <AnalogClock android:layout_width="wrap_content" 
        android:hand_minute="@drawable/widgetminute"         
        android:id="@+id/AnalogClock" 
         android:dial="@drawable/widgetdial" 
        android:hand_hour="@drawable/widgethour" 
        android:layout_height="wrap_content"    
        android:layout_centerInParent="true"> 
     </AnalogClock> 
    <ImageView android:src="@drawable/widgetseocond1" android:id="@+id/imgsecond" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_centerInParent="true" /> 
    </RelativeLayout> 
+0

!! Teşekkürler! –

+0

hoş geldiniz .. o zaman bunu kabul et .. :) – Sharmilee

+0

Üzgünüz, yeterince oy kullanmayın! :-( –