*以下內容翻譯自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).