数字及模拟小时钟设计(AnalogClock与DigitalClock的原理)
新建一个继承Activity类的AnalogClockAndDigitalClickActivity,并设置布局文件为:analogclockanddigitalclock.xml。
首先在布局文件中添加一个AnalogClock组件和DigitalClock组件和一个TextView组件。
<AnalogClock android:id="@+id/analogclockanddigitalclock_ac01" android:layout_width="wrap_content" android:layout_height="wrap_content" />
<DigitalClock android:id="@+id/analogclockanddigitalclock_dg01" android:layout_width="wrap_content" android:layout_height="wrap_content" />
<TextView android:id="@+id/analogclockanddigitalclock_tv01" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/show_information" android:textSize="20sp" /> |
而后在Activity代码中获取这3个组件。
package lyx.feng.second; ...... @SuppressWarnings("deprecation") public class AnalogClockAndDigitalClickActivity extends Activity { private AnalogClock ac = null; private private TextView tv = null; private Boolean flag = true; private static final int MESSAGE_WHAT = 1; private final Handler mHandler = new Handler() { public void handleMessage(android.os.Message msg) { switch (msg.what) { case MESSAGE_WHAT: tv.setText(msg.obj.toString()); break; } }; };
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); super.setContentView(R.layout.analogclockanddigitalclock); this.ac = (AnalogClock) super .findViewById(R.id.analogclockanddigitalclock_ac01); this.dc = ( .findViewById(R.id.analogclockanddigitalclock_dg01); this.tv = (TextView) super .findViewById(R.id.analogclockanddigitalclock_tv01); new MyThread().start(); }
private class MyThread extends Thread { @Override public void run() { do { Message msg = new Message(); msg.what = MESSAGE_WHAT; String time = new SimpleDateFormat("yyyy-DD-mm HH:ss.S") .format(new Date()); try { Thread.sleep(100); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } msg.obj = time; mHandler.sendMessage(msg); } while (flag); } }
@Override protected void onDestroy() { super.onDestroy(); flag = false; } }
|