我需要一些指导,为AOSP上的LatinIME设置默认主题。我不太确定这个值的存储位置。
首先,我尝试在LatinIME中的ThemeSettingsFragment.java中设置主题。因此,现在每次设置或更改主题时,它总是会选择我的。后来我发现只有当我们在设置(语言和输入 - > Android键盘(AOSP) - >外观&布局 - >主题)中打开键盘主题时才会调用此类。只有在我们打开这些视图时才会导致主题被更改。我的目标是在构建AOSP时设置主题。
接下来我怀疑这个值可以存储在一些全局配置中,这导致我在InputMethodManagerService.java类中找到了常量Settings.Secure.DEFAULT_INPUT_METHOD。但这并没有让我感到有价值。
任何人都曾在类似的事情上工作或知道我的问题的解决方案?
答案 0 :(得分:2)
我希望它有所帮助。
答案 1 :(得分:0)
Sanyam Jain恰到好处,在此添加了更多细节。 可以修改packages / inputmethods / LatinIME / java / src / com / android / inputmethod / keyboard / KeyboardTheme.java来更改默认键盘布局,或者您可以在其中添加自定义布局,并确保在软件包中正确添加/更改了选项/inputmethods/LatinIME/java/res/values/keyboard-themes.xml
就我而言,我希望将深色主题作为默认设置,并将其作为键盘布局设置中的第一个选项。下面是我所做的更改,
KeyboardTheme.java
公共静态最终int DEFAULT_THEME_ID = THEME_ID_LXX_DARK;
私有静态KeyboardTheme [] 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),
};
<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>