Android 顯示確認(rèn)界面

2018-08-02 17:53 更新

編寫: roya 原文:https://developer.android.com/training/wearables/ui/confirm.html

Android Wear應(yīng)用中的確認(rèn)界面(Confirmations)通常是全屏或者相比于手持應(yīng)用占更大的部分。這樣確保用戶可以一眼看到確認(rèn)界面(confirmations)且有一個(gè)足夠大的觸摸區(qū)域用于取消一個(gè)操作。

Wearable UI庫(kù)幫助我們?cè)贏ndroid Wear應(yīng)用中顯示確認(rèn)動(dòng)畫和定時(shí)器:

確認(rèn)定時(shí)器

  • 自動(dòng)確認(rèn)定時(shí)器為用戶顯示一個(gè)定時(shí)器動(dòng)畫,讓用戶可以取消他們最近的操作。

確認(rèn)界面動(dòng)畫

  • 確認(rèn)界面動(dòng)畫給用戶在完成一個(gè)操作時(shí)的視覺(jué)反饋。

下面的章節(jié)將演示了如何實(shí)現(xiàn)這些模式。

使用自動(dòng)確認(rèn)定時(shí)器

自動(dòng)確認(rèn)定時(shí)器讓用戶取消剛做的操作。當(dāng)用戶做一個(gè)操作,我們的應(yīng)用會(huì)顯示一個(gè)帶有定時(shí)動(dòng)畫的取消按鈕,并且啟動(dòng)該定時(shí)器。用戶可以在定時(shí)結(jié)束前選擇取消操作。如果用戶選擇取消操作或定時(shí)結(jié)束,我們的應(yīng)用會(huì)得到一個(gè)通知。

Figure 1: 一個(gè)確認(rèn)定時(shí)器.

為了在用戶完成操作時(shí)顯示一個(gè)確認(rèn)定時(shí)器:

  1. 添加DelayedConfirmationView元素到layout中。
  2. 在activity中實(shí)現(xiàn)DelayedConfirmationListener接口。
  3. 當(dāng)用戶完成一個(gè)操作時(shí),設(shè)置定時(shí)器的定時(shí)時(shí)間然后啟動(dòng)它。

像下面這樣添加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制定一個(gè)drawable資源,用于顯示在圓形里。然后直接設(shè)置圓的參數(shù)。

為了獲得定時(shí)結(jié)束或用戶點(diǎn)擊按鈕時(shí)的通知,需要在activity中實(shí)現(xiàn)相應(yīng)的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) {
        // User didn't cancel, perform the action
    }

    @Override
    public void onTimerSelected(View view) {
        // User canceled, abort the action
    }
}

為了啟動(dòng)定時(shí)器,添加下面的代碼到activity處理用戶選擇某個(gè)操作的位置中:

// Two seconds to cancel the action
mDelayedView.setTotalTimeMs(2000);
// Start the timer
mDelayedView.start();

顯示確認(rèn)動(dòng)畫

為了當(dāng)用戶在我們的應(yīng)用中完成一個(gè)操作時(shí)顯示確認(rèn)動(dòng)畫,我們需要?jiǎng)?chuàng)建一個(gè)從應(yīng)用中的某個(gè)activity啟動(dòng)ConfirmationActivity的intent。我們可以用EXTRA_ANIMATION_TYPE intent extra來(lái)指定下面其中一種動(dòng)畫:

  • SUCCESS_ANIMATION
  • FAILURE_ANIMATION
  • OPEN_ON_PHONE_ANIMATION

我們還可以在確認(rèn)圖標(biāo)下面添加一條消息。

Figure 2: 一個(gè)確認(rèn)動(dòng)畫

要在應(yīng)用中使用ConfirmationActivity,首先在manifest文件聲明這個(gè)activity:

<manifest>
  <application>
    ...
    <activity
        android:name="android.support.wearable.activity.ConfirmationActivity">
    </activity>
  </application>
</manifest>

然后確定用戶操作的結(jié)果,并使用intent啟動(dòng)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);

當(dāng)確認(rèn)動(dòng)畫顯示結(jié)束后,ConfirmationActivity會(huì)銷毀(Finish),我們的的activity會(huì)恢復(fù)(Resume)。


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)