创建确认界面
最后更新于:2022-04-01 01:42:00
> 编写: [roya](https://github.com/RoyaAoki) 原文:[https://developer.android.com/training/wearables/ui/confirm.html](https://developer.android.com/training/wearables/ui/confirm.html)
Android Wear apps中的[Confirmations](https://developer.android.com/design/wear/patterns.html#Countdown)通常全屏或是相比于手持app占更大的部分。这样确保用户可以一眼看到确认器(confirmations)且有一个足够大的触摸区域用于取消一个操作。
Wearable UI Library帮助你在你的Android Wear apps中显示确认器(confirmation)动画和定时器:
_Confirmation timers_
- 自动confirmation定时器为用户显示一个包含动画的定时器,让用户可以取消他们最近的操作。
_Confirmation animations_
- Confirmation animations 给用户一个在操作完成时的完成的视觉反馈。
下面的章节为你演示了如何实现这些样式。
### 使用自动 Confirmation 定时器
自动 Confirmation 定时器让用户只需要取消操作。当用户做一个操作,你的app显示带有定时动画的一个cancel按钮,用户可以在定时结束前选择取消操作。如果用户选择取消操作货定时结束你的app会得到一个通知。
![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2015-07-28_55b724741335b.png)
**Figure 1:** A confirmation timer.
为了在用户完成操作时显示一个confirmation timer:
1. 添加 _DelayedConfirmationView_ 元素到你的layout中。
1. 在你的[activity](# "An activity represents a single screen with a user interface.")中实现 _DelayedConfirmationListener_ 接口。
1. 当用户完成一个操作时,设置定时器的定时时间然后启动它。
像下面这样添加 _DelayedConfirmationView_ 元素到你的layout中:
~~~
<android.support.wearable.view.DelayedConfirmationView
android:id="@+id/delayed_confirm"
android:layout_width="40dp"
android:layout_height="40dp"
android:src="@drawable/cancel_circle"
app:circle_border_color="@color/lightblue"
app:circle_border_width="4dp"
app:circle_radius="16dp">
</android.support.wearable.view.DelayedConfirmationView>
~~~
你可以在layout解释里分配 _android:src_ 中的drawable资源显示在圆中然后直接设置圆的属性。
为了获得定时结束货用户点击按钮的通知,你需要在[activity](# "An activity represents a single screen with a user interface.")中实现相应的接口模块:
public class WearActivity extends [Activity](# "An activity represents a single screen with a user interface.") implements DelayedConfirmationView.DelayedConfirmationListener {
~~~
private DelayedConfirmationView mDelayedView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_wear_activity);
mDelayedView =
(DelayedConfirmationView) findViewById(R.id.delayed_confirm);
mDelayedView.setListener(this);
}
@Override
public void onTimerFinished(View view) {
// User didn't cancel, perform the action
}
@Override
public void onTimerSelected(View view) {
// User canceled, abort the action
}
~~~
}
为了开始定时器,添加下面的代码到你的[activity](# "An activity represents a single screen with a user interface.")中处理用户选择了某个操作的位置中:
~~~
// Two seconds to cancel the action
mDelayedView.setTotalTimeMs(2000);
// Start the timer
mDelayedView.start();
~~~
### 显示 Confirmation 动画
为了显示confirmation动画当用户在你的app中完成一个操作,创建一个从其他activities启动_ConfirmationActivity_ 的 _intent_ 。你可以具体制定一种动画到 intent extra 的 _EXTRA_ANIMATION_TYPE_:
- SUCCESS_ANIMATION
- FAILURE_ANIMATION
- OPEN_ON_PHONE_ANIMATION
你也可以添加一条消息出现在 confirmation icon下面。
![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2015-07-28_55b7247420d47.png)
**Figure 2:** A confirmation animation.
要在你的app中使用 _ConfirmationActivity_,首先在你的manifest文件:
~~~
<manifest>
<application>
...
<activity
android:name="android.support.wearable.activity.ConfirmationActivity">
</activity>
</application>
</manifest>
~~~
当用户操作获得结果,使用intent启动[activity](# "An activity represents a single screen with a user interface."):
~~~
Intent intent = new Intent(this, ConfirmationActivity.class);
intent.putExtra(ConfirmationActivity.EXTRA_ANIMATION_TYPE,
ConfirmationActivity.SUCCESS_ANIMATION);
intent.putExtra(ConfirmationActivity.EXTRA_MESSAGE,
getString(R.string.msg_sent));
startActivity(intent);
~~~
当confirmation动画显示结束。_ConfirmationActivity_ finish然后你的[activity](# "An activity represents a single screen with a user interface.") resumes。