//方式一:代码直接映射
\alps\frameworks\base\core\java\android\inputmethodservice\InputMethodService.java
@Override public void onCreate() {
mTheme =Resources.selectSystemTheme(mTheme,
getApplicationInfo().targetSdkVersion,
android.R.style.Theme_InputMethod,
android.R.style.Theme_Holo_InputMethod,
android.R.style.Theme_DeviceDefault_InputMethod);
super.setTheme(mTheme);
}
void initViews() {
mThemeAttrs =obtainStyledAttributes(android.R.styleable.InputMethodService);
mFullscreenArea.setBackgroundDrawable(mThemeAttrs.getDrawable(
com.android.internal.R.styleable.InputMethodService_imeFullscreenBackground));
}
\alps\frameworks\base\core\res\res\values-large\themes.xml
<!-- Default theme for input methods (on API level 10 and lower),which is used by the
{@linkandroid.inputmethodservice.InputMethodService} class.
this inherits from Theme.Panel, but sets up IME appropriate animations
and a few custom attributes. -->
<stylename="Theme.InputMethod" parent="Theme.Panel">
<itemname="android:windowAnimationStyle">@android:style/Animation.InputMethod</item>
<item name="android:imeFullscreenBackground">@android:drawable/input_method_fullscreen_background</item>
<itemname="android:imeExtractEnterAnimation">@android:anim/input_method_extract_enter</item>
<itemname="android:imeExtractExitAnimation">@android:anim/input_method_extract_exit</item>
<style name="Theme.Panel">
<itemname="android:windowBackground">@android:color/transparent</item>
<itemname="android:colorBackgroundCacheHint">@null</item>
<item name="android:windowFrame">@null</item>
</style>
\alps\frameworks\base\core\res\res\values\Attrs.xml
<declare-styleable name="InputMethodService">
<!-- Background to use for entire input method when it is being
shown in fullscreen mode with the extract view, to ensure
that it completely covers the application. This allows,
for example, the candidate view to be hidden
while in fullscreen mode without having the application show through
behind it.-->
<attr name="imeFullscreenBackground" format="reference|color"/>
<!-- Animation to use when showing the fullscreen extract UI after
it had previously been hidden. -->
<attr name="imeExtractEnterAnimation"format="reference" />
<!-- Animation to use when hiding the fullscreen extract UI after
it had previously been shown. -->
<attr name="imeExtractExitAnimation"format="reference" />
</declare-styleable>
\alps\frameworks\base\core\res\res\values\colors.xml
</style><drawable name="input_method_fullscreen_background">#fff9f9f9</drawable>
//方式二:资源映射:
\alps\mediatek\custom\k10\resource_overlay\generic_WIFIONLY\packages\apps\Contacts\AndroidManifest.xml
<activity android:name=".activities.PeopleActivity"
android:label="@string/people"
android:theme="@style/PeopleTheme"
android:uiOptions="splitActionBarWhenNarrow"
android:clearTaskOnLaunch="true"
android:launchMode="singleTop"
>
\alps\mediatek\custom\k10\resource_overlay\generic\packages\apps\Contacts\res\values-sw600dp\styles.xml
<style name="PeopleTheme" parent="@android:style/Theme.Holo.Light.DarkActionBar">
<itemname="android:actionBarStyle">@style/ContactsActionBarStyle</item>
<itemname="android:actionBarItemBackground">@drawable/action_bar_item_background</item>
<itemname="android:actionBarWidgetTheme">@style/ContactsActionBarTheme</item>
</style>
\alps\frameworks\base\core\res\res\values\ themes.xml
<!-- Variant of the holographic (light) theme that has a solid(opaque) action bar
with an inverse color profile. The dark action bar sharply stands outagainst
the light content. -->
<stylename="Theme.Holo.Light.DarkActionBar">
<itemname="android:windowContentOverlay">@android:drawable/ab_solid_shadow_holo</item>
<itemname="android:actionBarStyle">@android:style/Widget.Holo.Light.ActionBar.Solid.Inverse</item>
<itemname="actionBarWidgetTheme">@android:style/Theme.Holo</item>
</style>
输入方法服务的主题配置与资源映射
本文详细解析了Android输入方法服务(InputMethodService)的主题配置方式,包括直接映射和资源映射两种方法,并展示了如何在AndroidManifest.xml中为特定应用设置主题样式。
2672

被折叠的 条评论
为什么被折叠?



