显示确认界面
编写: roya 原文:<https://developer.android.com/training/wearables/ui/confirm.html>
Android Wear应用中的确认界面(Confirmations)通常是全屏或者相比于手持应用占更大的部分。这样确保用户可以一眼看到确认界面(confirmations)且有一个足够大的触摸区域用于取消一个操作。
Wearable UI库帮助我们在Android Wear应用中显示确认动画和定时器:
确认定时器
- 自动确认定时器为用户显示一个定时器动画,让用户可以取消他们最近的操作。
确认界面动画
- 确认界面动画给用户在完成一个操作时的视觉反馈。
下面的章节将演示了如何实现这些模式。
使用自动确认定时器
自动确认定时器让用户取消刚做的操作。当用户做一个操作,我们的应用会显示一个带有定时动画的取消按钮,并且启动该定时器。用户可以在定时结束前选择取消操作。如果用户选择取消操作或定时结束,我们的应用会得到一个通知。

Figure 1: 一个确认定时器.
为了在用户完成操作时显示一个确认定时器:
- 添加
DelayedConfirmationView元素到layout中。 - 在activity中实现
DelayedConfirmationListener接口。 - 当用户完成一个操作时,设置定时器的定时时间然后启动它。
像下面这样添加DelayedConfirmationView元素到layout中:
1. <android.support.wearable.view.DelayedConfirmationView
2. android:id="@+id/delayed_confirm"
3. android:layout_width="40dp"
4. android:layout_height="40dp"
5. android:src="@drawable/cancel_circle"
6. app:circle_border_color="@color/lightblue"
7. app:circle_border_width="4dp"
8. app:circle_radius="16dp">
9. </android.support.wearable.view.DelayedConfirmationView>
在layout定义中,我们可以用android:src制定一个drawable资源,用于显示在圆形里。然后直接设置圆的参数。
为了获得定时结束或用户点击按钮时的通知,需要在activity中实现相应的listener方法:
1. public class WearActivity extends Activity implements
2. DelayedConfirmationView.DelayedConfirmationListener {
4. private DelayedConfirmationView mDelayedView;
6. @Override
7. protected void onCreate(Bundle savedInstanceState) {
8. super.onCreate(savedInstanceState);
9. setContentView(R.layout.activity_wear_activity);
11. mDelayedView =
12. (DelayedConfirmationView) findViewById(R.id.delayed_confirm);
13. mDelayedView.setListener(this);
14. }
16. @Override
17. public void onTimerFinished(View view) {
18. // User didn't cancel, perform the action
19. }
21. @Override
22. public void onTimerSelected(View view) {
23. // User canceled, abort the action
24. }
25. }
为了启动定时器,添加下面的代码到activity处理用户选择某个操作的位置中:
1. // Two seconds to cancel the action
2. mDelayedView.setTotalTimeMs(2000);
3. // Start the timer
4. mDelayedView.start();
显示确认动画
为了当用户在我们的应用中完成一个操作时显示确认动画,我们需要创建一个从应用中的某个activity启动ConfirmationActivity的intent。我们可以用EXTRA_ANIMATION_TYPE intent extra来指定下面其中一种动画:
SUCCESS_ANIMATIONFAILURE_ANIMATIONOPEN_ON_PHONE_ANIMATION
我们还可以在确认图标下面添加一条消息。

Figure 2: 一个确认动画
要在应用中使用ConfirmationActivity,首先在manifest文件声明这个activity:
1. <manifest>
2. <application>
3. ...
4. <activity
5. android:name="android.support.wearable.activity.ConfirmationActivity">
6. </activity>
7. </application>
8. </manifest>
然后确定用户操作的结果,并使用intent启动activity:
1. Intent intent = new Intent(this, ConfirmationActivity.class);
2. intent.putExtra(ConfirmationActivity.EXTRA_ANIMATION_TYPE,
3. ConfirmationActivity.SUCCESS_ANIMATION);
4. intent.putExtra(ConfirmationActivity.EXTRA_MESSAGE,
5. getString(R.string.msg_sent));
6. startActivity(intent);
当确认动画显示结束后,ConfirmationActivity会销毁(Finish),我们的的activity会恢复(Resume)。
