【问题标题】:Display notifications correctly in Android Wear在 Android Wear 中正确显示通知
【发布时间】:2017-03-02 19:46:54
【问题描述】:

与 Android Wear 方形设备配对时,我的通知会正确显示 - 它们只是发送到设备(手表)以自动显示以保持代码简单。但是,它们位于 Wear 圆形手表的默认屏幕中心,并且圆形屏幕通知的一角实际上缺少一些通知信息。

BigTextStyle myStyle = new Notification.BigTextStyle();
.bigText(myText);

Notification.Builder notificationBuilder =
    new Notification.Builder(this)
    .setStyle(myStyle)
     // and so on

但是,可能是在某处添加以下几行代码(及其类导入):

  Notification.WearableExtender myextend = new Notification.WearableExtender();
.WearableExtender()

.setGravity(Gravity.TOP);

// add other code
.extend(myextend)

【问题讨论】:

    标签: layout notifications wear-os android-gravity


    【解决方案1】:

    基于此documentation,由于某些 Android Wear 设备具有方形屏幕,而其他设备具有圆形屏幕,因此您的表盘应适应并利用屏幕的特定形状,如 design guidelines 中所述。

    Android Wear 可让您的表盘在运行时确定屏幕形状。要检测屏幕是方形还是圆形,重写CanvasWatchFaceService.Engine类中的onApplyWindowInsets()方法,如下所示:

    private class Engine extends CanvasWatchFaceService.Engine {
    boolean mIsRound;
    int mChinSize;
    
    @Override
    public void onApplyWindowInsets(WindowInsets insets) {
    super.onApplyWindowInsets(insets);
    mIsRound = insets.isRound();
    mChinSize = insets.getSystemWindowInsetBottom();
    }
    ...
    }
    

    具有圆形屏幕的设备可以在屏幕底部包含一个嵌入(或“下巴”)。要在绘制表盘时调整您的设计,请检查 mIsRoundmChinSize 成员变量的值。

    以下是一些可能有帮助的相关主题:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多