显示确认

Android Wear 应用中的确认占用整个屏幕或比手持式设备应用更大的屏幕区域。这可以确保用户只需瞥一眼屏幕就能看到这些确认,并且用来取消操作的触摸目标也足够大。

Wearable 界面库可帮助您在 Android Wear 应用中显示确认动画和计时器:

确认计时器
自动确认计时器向用户显示的动画计时器允许用户取消其刚执行的操作。
确认动画
确认动画在用户完成操作时向其提供视觉反馈。

下文为您展示如何实现这些模式。

使用自动确认计时器

图 1:确认计时器。

自动确认计时器允许用户取消其刚执行的操作。当用户执行操作时,您的应用会显示一个带计时器动画的操作取消按钮,并启动计时器。用户可以选择在计时器计时完毕前取消操作。用户取消操作和计时器到期时您的应用会收到通知。

要在用户于您的应用内完成操作时显示确认计时器,请执行下列操作:

  1. <CircularProgressLayout> 元素添加到您的布局中。
  2. 在您的 Activity 中实现 OnTimerFinishedListener 接口。
  3. 设置计时器持续时间,并在用户完成操作时启动它。

要在您的应用中使用 CircularProgressLayout,您需要将下列依赖项加入到您的 wear 模块的 build.gradle 文件中。

dependencies{
     ...
    compile 'com.android.support:wear:26.0.0'
    compile 'com.android.support:support-compat:26.0.0'
    compile 'com.android.support:support-core-utils:26.0.0'
    compile 'com.android.support:support-core-ui:26.0.0'
    ...
}

您可以按如下方式向您的布局添加 <CircularProgressLayout> 元素:

<android.support.wear.widget.CircularProgressLayout
    android:id="@+id/circular_progress"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:padding="4dp"
    app:backgroundColor="@color/darkblue"
    app:colorSchemeColors="@color/lightblue"
    app:strokeWidth="4dp">
    <ImageView
      android:id="@+id/image_view"
      android:src="@drawable/cancel"
      android:layout_width="40dp"
      android:layout_height="40dp" />
</android.support.wear.widget.CircularProgressLayout>

您还可以将任何视图以子项形式添加到 CircularProgressLayout 中,以在其周围显示一个进度计时器。上例使用了一个 ImageView,但也可以使用 TextView 来显示内部文本。

:在穿戴式设备支持库中, CircularProgressLayout 类取代了一个与其类似且已弃用的类。

要在计时器计时完毕或用户点按它时收到通知,请在您的 Activity 中实现对应的侦听器函数:

public class WearActivity extends Activity implements
    CircularProgressLayout.OnTimerFinishedListener, View.OnClickListener {
  private CircularProgressLayout mCircularProgress;

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_wear_activity);
    mCircularProgress =
        (CircularProgressLayout) findViewById(R.id.circular_progress);
    mCircularProgress.setOnTimerFinishedListener(this);
    mCircularProgress.setOnClickListener(this);
  }

  @Override
  public void onTimerFinished(CircularProgressLayout layout) {
    // User didn't cancel, perform the action
  }

  @Override
  public void onClick(View view) {
    if (view.equals(mCircularProgress)) {
      // User canceled, abort the action
      mCircularProgress.stopTimer();
    }
  }
}

要启动计时器,请向您的 Activity 中用户选择操作的时间点添加以下代码:

// Two seconds to cancel the action
mCircularProgress.setTotalTime(2000);
// Start the timer
mCircularProgress.startTimer();

图 2:确认动画。

显示确认动画

要在用户于您的应用内完成操作时显示确认动画,请创建一个从您的某个 Activity 启动 ConfirmationActivity 的 intent。您可以使用 EXTRA_ANIMATION_TYPE intent 的 extra 指定其中一个动画:

您还可以添加出现在确认图标下方的消息。

要在您的应用中使用 ConfirmationActivity,请先在您的 manifest 文件中声明此 Activity:

<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);

显示确认动画后,ConfirmationActivity 完成,您的 Activity 继续。