*以下内容翻译自android wear的官方教程,本人水平有限,如有错误欢迎指出
home
以下正文
比起手机,在android wear上的app需要显示全屏或几乎全屏的确认界面。这样用户就可以简单的扫一眼就可以了解大概的信息并且能确保用户可以按到确认或取消按钮。
Wearable UI Library会帮助你显示确认动画和确认倒计时:
确认倒计时
自动的确认倒计时会展示一个倒计时的动画,用户可以主动的取消动作。
确认动画
确认动画可以在动作完成后给用户一个视觉的反馈。
下面的小节将会告诉你怎么实现这两个模式(patterns)
使用自动确认计时器(Automatic Confirmation Timers)
自动确认计时器让用户可以取消一个动作。当用户想要取消的时候,你的app可以显示一个会倒计时的按钮。用户可以在计时结束之前点击这个按钮来取消动作。你的app会收到一个取消或倒计时结束信号。
显示一个确认计时器(confirmation timer)的步骤:
- 在你的layout当中添加 <DelayedConfirmationView>
元素 - 在你的activity中实现 DelayedConfirmationListener
接口 - 设置计时器的时长,并在用户完成特定action后开始这个计时器
添加 <DelayedConfirmationView>
元素
<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资源来改变圆圈的样式。
当然,你必须记得要提供一个合适的listener来监听时间完成或点击取消的事件。
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) {
// 用户没有取消,完成既定的任务
}
@Override
public void onTimerSelected(View view) {
// 用户取消,取消任务
}
}
在用户完成特定的动作的地方添加以下代码
// 设置两秒的时间给用户取消任务
mDelayedView.setTotalTimeMs(2000);
// 开始计时
mDelayedView.start();
显示确认动画
当用户完成特定的动作后,显示一个确认动画。在你的activities当中创建intent来跳转到ConfirmationActivity
。你可以通过设置EXTRA_ANIMATION_TYPE
来指定以下的动画类型。
你也可以添加一个信息在确认图标下面
首先你要在你的manifest文件中声明这个activity
<manifest>
<application>
...
<activity
android:name="android.support.wearable.activity.ConfirmationActivity">
</activity>
</application>
</manifest>
第二步,在需要的地方加入以下代码
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);
在动画播放结束之后,你的activity将会恢复(resumes).