通过手势实现对时钟的拨动旋转效果(附详细说明)
http://www.eoeandroid.com/forum. ... &fromuid=485185
现在这个DEMO把它封装成自定义控件,对外仅提供了3个公用接口:
public void switchClockState(_ClockState state) // 切换时钟状态
public void saveTimeToSystem() // 保存表盘时间到系统时间
public void reviseTime() // 恢复当前时间为系统时间 那么在使用起来就相对方便了 看看主Activity里的代码,是不是很简单:
public class CustomClockDemoActivity extends Activity {
/** Called when the activity is first created. */
private CustomClock mCustomClock1;
private CustomClock mCustomClock2;
private CustomClock mCustomClock3;
private Button mBtnSetting;
private Button mBtnSave;
private Button mBtnNoSave;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
init();
}
public void init(){
mCustomClock1 = (CustomClock) findViewById(R.id.clock1);
mCustomClock1.switchClockState(CustomClock._ClockState.eQ_CLOCK_RUN);
mCustomClock2 = (CustomClock) findViewById(R.id.clock2);
mCustomClock2.switchClockState(CustomClock._ClockState.eQ_CLOCK_RUN);
mCustomClock3 = (CustomClock) findViewById(R.id.clock3);
mCustomClock3.switchClockState(CustomClock._ClockState.eQ_CLOCK_RUN);
mBtnSetting = (Button) findViewById(R.id.buttonSetting);
mBtnSetting.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Setting();
}
});
mBtnSave = (Button) findViewById(R.id.buttonSave);
mBtnSave.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Save();
}
});
mBtnNoSave = (Button) findViewById(R.id.buttonNoSave);
mBtnNoSave.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
noSave();
}
});
mCustomClock1.setVisibility(View.INVISIBLE);
mCustomClock2.setVisibility(View.GONE);
mCustomClock3.setVisibility(View.GONE);
}
public void Setting(){
mCustomClock1.switchClockState(CustomClock._ClockState.eQ_CLOCK_SETTING);
}
public void Save(){
mCustomClock1.saveTimeToSystem();
mCustomClock1.switchClockState(CustomClock._ClockState.eQ_CLOCK_RUN);
}
public void noSave(){
mCustomClock1.reviseTime();
mCustomClock1.switchClockState(CustomClock._ClockState.eQ_CLOCK_RUN);
}
}
转载:http://www.adobex.com/android/source/details/00000431.htm