Android开发继承webview,WebView如何从当前的Android主题继承颜色?

此问题最初发布在谷歌版主上,用于上周举行的AndroidDev办公时间环聊.问题实际上是现场回答,如果你愿意,你可以在这里观看.我在这里发帖,因为他们似乎对它很感兴趣,而且我有更多的空间来详细阐述.

A WebView通常用于显示作者想要的Web内容(如他们在环聊中所述).但我使用a WebView来显示,不仅仅是内容本身,而是格式化文本(主要是粗体,斜体,项目符号列表和文本对齐).这是一个容易得多WebView(换句话说,更容易使用HTML/CSS),而不是用一堆TextViews,并保持这一切完全格式化.

问题是我正在使用这个特定WebView的透明背景AlertDialog.该WebView文本颜色来自加载的内容CSS但重要的是,这种色彩搭配的背景色对比AlertDialog.那是我的问题.

直到Android 2.3,AlertDialog背景总是很暗.如果应用主题是默认的暗色或浅色,无关紧要,AlertDialog仍然是深灰色.这个在香草Android上.但即使在蒙皮的Android(Sense,TouchWiz,MotoBlur等)上,它AlertDialog也一直是暗色(对于默认/暗色和浅色主题).

这一切都随着ICS而改变(它可能在Honeycomb上有所改变,但我没有证实).默认/黑暗主题现在有一个黑暗,AlertDialog而灯光主题实际上有一个光AlertDialog.

由于我在我的应用程序上专门使用灯光主题,我可以通过加载WebView不同CSS文件的内容轻松解决我的问题.一种是深色文本颜色,适用于ICS以下版本,另一种是浅色文本颜色,适用于ICS及以上版本.如果不是OEM皮肤,这将主要解决我的问题.

在他们的ICS皮肤版本中,他们可能会提供暗/亮主题AlertDialog.或不.他们更有可能做到这一点,他们一如既往地提供黑暗和浅色的主题,但是对于AlertDialog唯一的黑暗版本,无论应用程序的主题如何.

我可以强制Holo我的应用程序并解决问题,但我不想干扰整个系统在用户设备上的外观.例如,如果他们有Sense并且非常喜欢它,我不想在使用我的应用程序时显示Holo主题AlertDialog.

最终,我的问题是:

那么,我该如何应对呢?如何确保我的文字在后台WebView可读AlertDialog?无论是Android版本,正在使用的主题还是由OEM设计的主题......

我不知道这有多可行,但解决这个问题的另一种方法是以某种方式从AlertDialog设备中的主题中提取文本颜色.但不是默认主题或Holo主题,而是DeviceDefault我相信的主题.

这种萃取很容易完成吗?它能解决我的问题吗?你还有其他选择吗?

最后一个细节......如果您观看了环聊以及实际回复我的人,其中一人建议注入CSS.如果我以前不清楚,我不需要这样做.我只需要用WebView我想要的CSS 构建内容String,它可以采用从主题中提取的文本颜色.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值