编写: roya 原文:https://developer.android.com/training/wearables/ui/confirm.html
Android Wear apps中的Confirmations通常全屏或是相比于手持app占更大的部分。这样确保用户可以一眼看到确认器(confirmations)且有一个足够大的触摸区域用于取消一个操作。
Wearable UI Library帮助你在你的Android Wear apps中显示确认器(confirmation)动画和定时器:
Confirmation timers
Confirmation animations
下面的章节为你演示了如何实现这些样式。
自动 Confirmation 定时器让用户只需要取消操作。当用户做一个操作,你的app显示带有定时动画的一个cancel按钮,用户可以在定时结束前选择取消操作。如果用户选择取消操作货定时结束你的app会得到一个通知。
Figure 1: A confirmation timer.
为了在用户完成操作时显示一个confirmation timer:
像下面这样添加 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中实现相应的接口模块:
public class WearActivity extends Activity 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中处理用户选择了某个操作的位置中:
// Two seconds to cancel the action
mDelayedView.setTotalTimeMs(2000);
// Start the timer
mDelayedView.start();
为了显示confirmation动画当用户在你的app中完成一个操作,创建一个从其他activities启动ConfirmationActivity 的 intent 。你可以具体制定一种动画到 intent extra 的 EXTRA_ANIMATION_TYPE:
你也可以添加一条消息出现在 confirmation icon下面。
Figure 2: A confirmation animation.
要在你的app中使用 ConfirmationActivity,首先在你的manifest文件:
<manifest>
<application>
...
<activity
android:name="android.support.wearable.activity.ConfirmationActivity">
</activity>
</application>
</manifest>
当用户操作获得结果,使用intent启动activity:
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 resumes。