创建确认界面

最后更新于: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。
';