Android 創(chuàng)建自定義的布局

2018-08-02 17:50 更新

編寫: kesenhoo - 原文: http://developer.android.com/training/wearables/apps/layouts.html

為可穿戴設備創(chuàng)建布局是和手持設備是一樣的,除了我們需要為屏幕的尺寸和glanceability進行設計。但是不要期望通過搬遷手持應用的功能與UI到可穿戴上會有一個好的用戶體驗。僅僅在有需要的時候,我們才應該創(chuàng)建自定義的布局。請參考可穿戴設備的design guidelines學習如何設計一個優(yōu)秀的可穿戴應用。

創(chuàng)建自定義Notification

通常來說,我們應該在手持應用上創(chuàng)建好notification,然后讓它自動同步到可穿戴設備上。這讓我們只需要創(chuàng)建一次notification,然后可以在不同類型的設備(不僅僅是可穿戴設備,也包含車載設備與電視)上進行顯示,免去為不同設備進行重新設計。

如果標準的notification風格無法滿足我們的需求(例如NotificationCompat.BigTextStyle 或者 NotificationCompat.InboxStyle),我們可以顯示一個使用自定義布局的activity。我們只可以在可穿戴設備上創(chuàng)建并處理自定義的notification,同時系統(tǒng)不會將這些notification同步到手持設備上。

Note: 當在可穿戴設備上創(chuàng)建自定義的notification時,我們可以使用標準notification API(API Level 20),不需要使用Support Library。

為了創(chuàng)建自定義的notification,步驟如下:

  1. 創(chuàng)建布局并設置這個布局為需要顯示的activity的content view:
    public void onCreate(Bundle bundle){
     ...
     setContentView(R.layout.notification_activity);
    }
    
  2. 為了使得activity能夠顯示在可穿戴設備上,需要在manifest文件中為activity定義必須的屬性。我們需要把activity聲明為exportable,embeddable以及擁有一個空的task affinity。我們也推薦把activity的主題設置為Theme.DeviceDefault.Light。例如:
    <activity android:name="com.example.MyDisplayActivity"
      android:exported="true"
      android:allowEmbedded="true"
      android:taskAffinity=""
      android:theme="@android:style/Theme.DeviceDefault.Light" />
    
  3. 為activity創(chuàng)建PendingIntent,例如::
    Intent notificationIntent = new Intent(this, NotificationActivity.class);
    PendingIntent notificationPendingIntent = PendingIntent.getActivity(this, 0, notificationIntent,
         PendingIntent.FLAG_UPDATE_CURRENT);
    
  4. 創(chuàng)建Notification并執(zhí)行setDisplayIntent())方法,參數(shù)是前面創(chuàng)建的PendingIntent。當用戶查看這個notification時,系統(tǒng)使用這個PendingIntent來啟動activity。
  5. 使用notify())方法觸發(fā)notification。

Note: 當notification呈現(xiàn)在主頁時,系統(tǒng)會根據(jù)notification的語義,使用一個標準的模板來呈現(xiàn)它。這個模板可以在所有的表盤上進行顯示。當用戶往上滑動notification時,將會看到為這個notification準備的自定義的activity。

使用Wearable UI庫創(chuàng)建布局

當我們使用Android Studio的工程向導創(chuàng)建一個Wearable應用的時候,會自動包含Wearable UI庫。你也可以通過給build.gradle文件添加下面的依賴聲明把庫文件添加到項目:

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.google.android.support:wearable:+'
    compile 'com.google.android.gms:play-services-wearable:+'
}

這個庫文件幫助我們建立為可穿戴設備設計的UI。更詳細的介紹請看為可穿戴設備創(chuàng)建自定義UI。

下面是一些Wearable UI庫中主要的類:

  • BoxInsetLayout - 一個能夠感知屏幕的形狀并把子控件居中擺放在一個圓形屏幕的FrameLayout。
  • CardFragment - 一個能夠可拉伸,垂直可滑動卡片的fragment。
  • CircledImageView - 一個圓形的image view。
  • ConfirmationActivity - 一個在用戶完成一個操作之后用來顯示確認動畫的activity。
  • CrossFadeDrawable - 一個drawable。該drawable包含兩個子drawable和提供方法來調整這兩個子drawable的融合方式。
  • DelayedConfirmationView - 一個view。提供一個圓形倒計時器,這個計時器通常用于在一段短暫的延遲結束后自動確認某個操作。
  • DismissOverlayView - 一個用來實現(xiàn)長按消失的View。
  • DotsPageIndicator - 一個為GridViewPager提供的指示標記,用于指定當前頁面相對于所有頁面的位置。
  • GridViewPager - 一個可以橫向與縱向滑動的局部控制器。你需要提供一個GridPagerAdapter用來生成顯示頁面的數(shù)據(jù)。
  • GridPagerAdapter - 一個提供給GridViewPager顯示頁面的adapter。
  • FragmentGridPagerAdapter - 一個將每個頁面表示為一個fragment的GridPagerAdapter實現(xiàn)。
  • WatchViewStub - 一個可以根據(jù)屏幕的形狀生成特定布局的類。
  • WearableListView - 一個針對可穿戴設備優(yōu)化過后的ListView。它會垂直的顯示列表內容,并在用戶停止滑動時自動顯示最靠近的Item。

Wear UI library API reference

這個參考文獻解釋了如何詳細地使用每個UI組件。查看Wear API reference documentation了解上述類的用法。

為用于Eclipse ADT下載Wearable UI庫

如果你正在使用Eclipse ADT,那么下載Wearable UI library將Wearable UI庫導入到你的工程當中。

Note: 我們推薦使用Android Studio來開發(fā)可穿戴應用。


以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號