【问题标题】:How to set default theme for LatinIME in AOSP如何在 AOSP 中为 LatinIME 设置默认主题
【发布时间】:2017-07-15 15:22:33
【问题描述】:

我需要一些关于在 AOSP 上为 LatinIME 设置默认主题的指导。我不太确定这个值存储在哪里。

首先我尝试在位于 LatinIME 的 ThemeSettingsFragment.java 中设置主题。所以现在每次设置或更改主题时,它总是会选择我的。后来我发现只有当我们在设置中打开键盘主题时才会调用这个类(语言和输入 -> Android 键盘(AOSP) -> 外观和布局 -> 主题)。仅当我们打开这些视图时,才会更改主题。我的目标是在构建 AOSP 时设置我的主题。

接下来我怀疑该值可以存储在一些全局配置中,这导致我进入 InputMethodManagerService.java 类,在那里我找到了常量 Settings.Secure.DEFAULT_INPUT_METHOD。但这并没有把我带到任何值得的地方。

有人做过类似的事情或知道我的问题的解决方案吗?

【问题讨论】:

    标签: android keyboard themes default android-source


    【解决方案1】:

    【讨论】:

    • 其实这是正确的答案。我没有正确测试它,但现在我可以说它完美无缺。谢谢。
    • 哈哈。没有问题:D
    【解决方案2】:

    Sanyam Jain 是正确的,添加了更多细节。 packages/inputmethods/LatinIME/java/src/com/android/inputmethod/keyboard/KeyboardTheme.java 进行修改以更改默认键盘布局,或者您可以在此处添加自定义布局并确保在包中正确添加/更改选项/inputmethods/LatinIME/java/res/values/keyboard-themes.xml

    在我的情况下,我希望在键盘布局设置中将材料深色主题作为默认和第一个选项。以下是我所做的更改,

    1. KeyboardTheme.java

      public static final int DEFAULT_THEME_ID = THEME_ID_LXX_DARK;

      私有静态键盘主题[] AVAILABLE_KEYBOARD_THEMES;

       /* package private for testing */
       static final KeyboardTheme[] KEYBOARD_THEMES = {
       new KeyboardTheme(THEME_ID_LXX_DARK, "LXXDark", R.style.KeyboardTheme_LXX_Dark,
                   // This has never been selected as default theme.
                   Build.VERSION_CODES.LOLLIPOP),
           new KeyboardTheme(THEME_ID_ICS, "ICS", R.style.KeyboardTheme_ICS,
                   // This has never been selected because we support ICS or later.
                   VERSION_CODES.BASE),
           new KeyboardTheme(THEME_ID_KLP, "KLP", R.style.KeyboardTheme_KLP,
                   // Default theme for ICS, JB, and KLP.
                   VERSION_CODES.ICE_CREAM_SANDWICH),
           new KeyboardTheme(THEME_ID_LXX_LIGHT, "LXXLight", R.style.KeyboardTheme_LXX_Light,
                   // Default theme for LXX.
                   VERSION_CODES.BASE),
      
       };
      
    1. 在keyboard-themes.xml中

    <string-array name="keyboard_theme_names" translatable="false">
      <item>@string/keyboard_theme_material_dark</item>
      <item>@string/keyboard_theme_material_light</item>
      <item>@string/keyboard_theme_holo_white</item>
      <item>@string/keyboard_theme_holo_blue</item>
    </string-array>
    <!-- An element must be a keyboard theme id of
             {@link com.android.inputmethod.keyboard.KeyboardTheme#THEME_ID_ICS} etc. -->
    <integer-array name="keyboard_theme_ids" translatable="false">
      <item>4</item>
      <item>3</item>
      <item>2</item>
      <item>0</item>
    </integer-array>

    【讨论】:

      猜你喜欢
      • 2016-04-15
      • 2016-12-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-19
      • 2013-12-30
      • 1970-01-01
      相关资源
      最近更新 更多