首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

API低于23的Android设备中的文本颜色显示不正确?

API低于23的Android设备中的文本颜色显示不正确是由于Android系统在API 23之前对文本颜色的处理方式与后续版本不同所导致的。在API 23之前,Android系统使用的是一种叫做"Legacy Color"的颜色处理方式,而在API 23及以上的版本中,Android系统采用了新的颜色处理方式。

在API 23之前,Android系统中的文本颜色是通过设置"TextColor"属性来实现的。然而,由于"Legacy Color"的处理方式与后续版本不同,导致在API低于23的设备上,文本颜色显示不正确的问题。

为了解决这个问题,可以采用以下几种方法:

  1. 使用兼容性库:可以使用Android Support库中的AppCompat库来解决这个问题。AppCompat库提供了一些兼容性的API,可以使得在低版本的Android设备上也能正确显示文本颜色。具体使用方法可以参考AppCompat库的官方文档:AppCompat库
  2. 动态设置文本颜色:可以通过代码动态设置文本颜色,根据设备的API版本选择不同的颜色处理方式。可以使用条件语句判断设备的API版本,然后选择合适的颜色设置方法。具体代码示例如下:
代码语言:java
复制
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
    textView.setTextColor(getResources().getColor(R.color.my_text_color, null));
} else {
    textView.setTextColor(getResources().getColor(R.color.my_text_color));
}
  1. 使用兼容性颜色资源:可以在res/values目录下创建不同版本的颜色资源文件,分别设置不同版本的文本颜色。然后在布局文件中使用兼容性颜色资源来设置文本颜色。具体操作步骤如下:
  • 在res/values目录下创建color.xml文件,定义不同版本的文本颜色资源,例如:
代码语言:xml
复制
<resources>
    <color name="my_text_color">...</color> <!-- 适用于API 23及以上的颜色 -->
</resources>
  • 在res/values-v23目录下创建color.xml文件,定义适用于API低于23的文本颜色资源,例如:
代码语言:xml
复制
<resources>
    <color name="my_text_color">...</color> <!-- 适用于API低于23的颜色 -->
</resources>
  • 在布局文件中使用兼容性颜色资源来设置文本颜色,例如:
代码语言:xml
复制
<TextView
    android:id="@+id/textView"
    android:textColor="@color/my_text_color"
    ... />

通过以上方法,可以解决API低于23的Android设备中文本颜色显示不正确的问题。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Android M (API23) 对权限授权处理

前言 Android M发布,最重要提升就是权限控制,这么多年来Android App权限滥用状况将逐步得到改善。...在API 23,如果我们将compileSdkVersion和targetSdkVersion同时指定为23,而且我们没有显式提醒用户去授予权限, 那么将导致App运行崩溃。...另外,Android官方手册也有描述,可以详细阅读:Permissions 效果 我喜欢用Gif动图来直观展示效果! ?...; /** * 权限控制工具类: * 为了适配API23,即Android M 在清单文件配置use permissions后,还要在程序运行时候进行申请。...,再次调用shouldShowRequestPermissionRationale()时,返回false; * ***4).设备系统设置,禁止了应用获取这个权限授权,则调用shouldShowRequestPermissionRationale

1.5K20

AndroidTextView实现分段显示不同颜色字符串

关于TextView TextView是Android开发中最最常见控件之一,在API记录属性有很多,但实际开发,也遇到很多有趣需求,值得去尝试,所以记录下来,既可以给大家提供参考,同时自己需要时候也方便查找...最近开发过程中有个小小知识点,就是TextView显示内容需要分段显示不同颜色,如下图所示 ?...,颜色样式控制灵活 如果需要显示文本需要分多个段的话,那就需要很多个TextView,而且布局不好控制 实现方式简单,就不写例子了 使用SpannableString 想必用过的人都知道,比较好一点是...SpannableString可以精确控制一个长长字符串第几个到第几个字符样式 SpannableString spannableString = new SpannableString("jakjfkajfjaj...), 0, 5, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); 以上只是列举了几个常见用法,更多可以参考android.text.style包下面的几个类 ?

3.7K30

【有人@我】Android中高亮变色显示文本关键字

应该是好久没有写有关技术类文章了,前天还有人在群里问我,说群主很长时间没有分享干货了,今天分享一篇AndroidTextView在大段文字内容如何让关键字高亮变色文章 ,希望对大家有所帮助,我终于在歪路上回归正途了...今天分享文章大概内容是在TextView如何使大段文字内容关键字变色高亮显示,分为一个关键字高亮变色显示和多个关键字一起高亮变色显示。...; import android.text.Spanned; import android.text.style.ForegroundColorSpan; public class KeywordUtil...* @param keyword * 文字关键字 * @return */ public static SpannableString matcherSearchTitle...* @param text * 文字 * @param keyword * 文字关键字数组 * @return */ public

1.6K90

Android原生编解码接口 MediaCodec 之——踩坑

自动触发输出关键帧 在MediaCodec硬编码设置I(关键帧)时间间隔,在 api 是这么设置 mediaFormat.setInteger(MediaFormat.KEY_I_FRAME_INTERVAL...如果当前设备最大分辨率高于这个值,就算预设值不一样,也还是可以正常解码并显示1920*1080画面。那么如果低于这个值呢?...有的原因也是因为这个 该机型硬解码最大配置分辨率低于当前视频流分辨率 部分机型输出数据太短,或者为0 取出 output buffer 后,要手动设置 position 和 limit(api19...关于BufferInfopresentationTimeUs设置 如果不正确设置presentationTimeUs,有的设备编码器会丢掉输入桢,或者输出图像质量很差,参见bigflake FAQ...也就是默认采用VBR 关于VBR CQ CBR区别,可查看Android原生编解码接口 MediaCodec 之——完全解析流控。

4.5K20

Android P 行为变更

设备安全变更 运行 Android P 设备提供密钥轮替以及系统调用保护。不论您应用针对哪个级别的 API,此类变更都能显著提升应用安全性。...Android 7.0 (API 等级 24) 版本开始引入NumberFormat.parseCurrency 函数,用于处理类似 PLURALCURRENCYSTYLE CURRENCY 文本...Android 6.0 (API 等级 23) 已替换并弃用了安全加密文件,同时引入了 “可采用 SK 卡 (adoptable SD card)” 功能; Android 8.0 (API 等级...应用不再能访问 xt_qtaguid 文件夹文件 应用不再能直接读取 /proc/net/xt_qtaguid 文件夹文件,这一举措是为了与部分发售时就运行 Android P 设备保持一致...(ARGB) 包含 32 位十六进制颜色,这可能会导致渲染错误。

2.6K20

检查 GPU 渲染速度和过度绘制

在这种情况下,您可能会发现 GPU 制造商提供分析工具很有帮助。 启用分析器 开始前,请确保您使用是搭载 Android 4.1(API 级别 16)或更高版本设备,并启用开发者选项。...检查输出 在图 1 显示 GPU 渲染模式分析图形放大图像,您可以看到 Android 6.0(API 级别 23)上显示彩色部分。 ? 图 1. 放大 GPU 渲染模式分析图形。...每个竖条都有与渲染管道某个阶段对应彩色区段。区段数因设备 API 级别不同而异。 下表介绍了使用运行 Android 6.0 及更高版本设备时分析器输出某个竖条每个区段。...Android 6.0 及更高版本竖条区段。 4.0(API 级别 14)和 5.0(API 级别 21)之间 Android 版本具有蓝色、紫色、红色和橙色区段。...低于 4.0 Android 版本只有蓝色、红色和橙色区段。下表显示Android 4.0 和 5.0 竖条区段。

1.7K20

APP性能测试—过度绘制

要实现每秒 60 帧,代表每个帧竖条需要保持在此线以下。当竖条超出此线时,可能会使卡顿丢帧。 下表介绍了使用运行 Android 6.0及更高版本设备分析器输出竖条具体含义。 ?...注意: Android 4.0(API 级别 14)和 Android 5.0(API 级别 21)之间Android 版本具有蓝色、紫色、红色和橙色区段。...低于Android 4.0 Android 版本只有蓝色、红色和橙色区段。下表显示Android 4.0 和 5.0 竖条区段。 ?...XCode 9之后版本则直接需要在Xcode菜单运行项目时进行调试,如下图所示: ? 开启之后在设备上就可以看到图层混合情况: ? 红色:存在混合图层。 绿色:没有使用混合。...例如,要获得灰色文本,您可以在 TextView 绘制黑色文本,再为其设置半透明透明度值。但是,您可以简单地通过用灰色绘制文本来获得同样效果,而且能够大幅提升性能。

3K21

小程序提升界面使用体验 丰富了内容展示组件

02—丰富内容展示组件 小程序可以很方便地展示富文本,如一段排版精美的文章。 在微信群聊中使用小程序,可以将本群群名称展示在自己页面上。...支持小程序修改标题栏颜色 A 新增 API setEnableDebug 控制线上版本 vConsole 打开关闭 A 新增 API setKeepScreenOn 允许小程序设置屏幕保持常亮 U...返回不正确 windowHeight 问题 F 修复 API onBluetoothDeviceFound 返回数据格式不正确问题 F 修复 API reLaunch 在客户端上跳转不成功问题...原生组件上显示基础原生视图 A 新增 组件 实现展示微信开放数据 A 新增 组件 支持富文本 U 更新 组件 改变 scale 时增加动画过渡效果...下切换成原生播放器 F 修复 组件 在 Devtools disable-scroll 和文档描述不符问题 F 修复 组件 在 Android 收起键盘同时

1.6K80

Android Ble蓝牙App(六)请求MTU与显示设备信息

这里mtu 范围在23 ~ 517之间,目前市面上Android版本高手机基本上都是247。也就是说即使你mtu = 517,回调mtu可能还是247,为什么呢?...注意:在 Android 版本低于 5.0 设备上,MTU 大小是固定,无法通过此方法进行修改。...它将占据工具栏可用空间,可能会挤占其他工具栏元素。 withText:与 always 类似,但会同时显示菜单项文本标签。 下面你可以再运行看一下效果,我就不运行了。...显示设备信息控件,修改后代码如下所示: <TextView android:id="@+id/tv_device_info" android:layout_width...,增加点击效果,同时多出来内容省略掉,下面回到MainActivity增加一个显示设备操作信息弹窗函数,代码如下所示: /** * 显示设备信息弹窗 */ private

1.4K30

Android使用TextInputLayout创建登陆页面

例子target api是17,这是Design Support Library支持最小api版本。这个级别的api基本上已经支持绝大多数设备了。...它显示了一个“欢迎”文字(可以很容易替换成logo什么)与两个EditText元素,一个是为用户名准备,一个是为密码准备。布局还包含了一个触发登陆流程按钮。背景颜色是扁平风格灰色。...很多组织为密码验证采用了不同策略,但是所有人都会限制最短长度。合理密码应该不低于6个字符。...现在我们定义了什么是错误什么是正确,也知道了如何获取EditText数据以及显示可能错误,onClick方法实现就很简单了。...谷歌把Design Support Library写很好。每一个控件颜色都是直接通过主题颜色绘制,在 style.xml 中指定。打开它添加colorAccent 到主题以改变表单颜色

1.6K10

Android-日夜主题切换(google推荐)

Theme.AppCompat.DayNight在Support Library 23以后也就是6.0出现,支持API 14及以上,我相信现在已经不存在低于API14手机了吧。...早上6点到晚上10点是亮色主题,晚上10点到早上6点是暗色主题,但如果你想更加精确,需要提供坐标权限,在 API v14 以下设备则会默认使用亮色主题。...文件夹则是我们定义夜间模式颜色信息,同样我们还可以定义其他相关文件夹。...我们看一眼夜间模式我们定义color颜色: ? image.png 没啥说,也白天对应。...对待这个问题,我们通常就是将用户设置主题保存到SharedPreference,每次进入app都先查询用户保存主题,然后在BaseApplication调用 AppCompatDelegate.setDefaultNightMode

3K30

Android 5.0 API新增和改进

Material Design 设计样式 通知是在白色(或颜色非常浅)背景上绘制深色文本,以便与新 Material Design 设计小部件协调一致。...请确保所有通知在新配色方案下都能够正常显示。如果通知无法正常显示,请予以修复: 使用 setColor() 在图标图片后面的圆圈设置一种强调色彩。 更新或移除有颜色资源。...通知在锁定屏幕上公开程度 在 Android 5.0 ,通知现在默认显示在用户锁定屏幕上。用户可以选择不公开敏感信息,这样的话系统会自动修改通知显示文本。...如果您应用使用 WebView… Android 5.0 会更改您应用默认行为。 如果您应用目标 API 级别不低于 21: 默认情况下,系统会屏蔽混合内容和第三方 Cookie。...Android 5.0 对您应用文本到语音合成提供了更细粒度控制。新 Voice 类允许您应用使用与特定区域设置、质量和延迟评级以及特定于文本到语音引擎参数关联语音配置文件。

1.7K20

浅谈AndroidGPU过度绘制、GPU呈现模式分析及相关优化

在真机设备下有一个开发者选项,这个大家都知道,我们最常用就打开'USB调试'功能,方便真机调试。 在这开发者选项还有个选项,'调试GPU过度绘制' ?...这里选择第二个选项'显示过度绘制区域' ? 可以看到针对该界面 每一个控件周边都有一块颜色区域 颜色对应: ?...过度绘制造成结果是在部分性能差设备,会出现卡顿问题,不过一般对于当年出设备不会造成影响。...中间有一根绿色横线,代表16ms,我们需要确保每一帧花费总时间都低于这条横线,这样才能够避免出现卡顿问题。 当频繁超过绿线时候对于性能不好时候就会出现卡顿情况。...OpenGL ES是手持嵌入式设备3DAPI,跨平台、功能完善2D和3D图形应用程序接口API,有一套固定渲染管线流程.

1.3K20

Android 13 SDK更新内容

由于用户很难将位置信息权限与 Wi-Fi 功能相关联,因此 Android 13(API 级别 33)在 NEARBY_DEVICES权限组引入了新运行时权限,适用于管理设备与附近 Wi-Fi 接入点连接情况应用...系统将会使用用户壁纸和主题来确定色调颜色,然后将颜色应用到我们app图标。...文本转换API:使用中文输入时采用拼音输入法,这通常会导致搜索以及自动填充等功能执行速度变慢。在 Android 13 ,应用可以调用新文本转换 API,以便用户更快、更轻松地找到所需内容。...更安全地导出上下文注册接收器:为了帮助提高运行时接收器安全性,Android 13 允许您指定您应用特定广播接收器是否应被导出以及是否对设备其他应用可见。...复制和粘贴方面的改进:向剪贴板添加内容时,系统会显示标准视觉确认界面,以便用户预览和修改复制内容。 新系统级无障碍功能偏好设置:允许用户跨所有应用启用音频说明。

2K10

Google 正式发布 Android 13,已发布至 AOSP

提升开发者生产力更新 ◆ No.1 具有基于 Material You 演进外观和风格 在 Android 12 ,Google 发布了全新一代设计语言 Material You,它具有颜色/设计定制功能...在 Android 13 ,该版本可以将 Material You 动态颜色扩展到所有应用图标。简单来看,普通用户可以自定义非 Google 应用,使其与手机壁纸主题和颜色相匹配。...◆ No.4 文本支持改进 根据官方公告显示,快速断字连接符性能相比之前提升了 200%,对于 TextView 渲染速度已经几乎没有影响了,所以可以放心使用。...譬如: Android 13 现在包含一个新照片选取器,其中显示了你可以控制访问两个新类别:“照片和视频”和“音乐与音频”,而不是“文件和媒体”; 阻止了对剪贴板进行任何不必要访问,即如果你在设备上复制了电子邮件地址...你下载应用现在需要你显式权限才能发送通知,而不是默认允许发送通知。 另外在 Android 13 ,可以从 Android 手机复制内容(如 URL、图片、文本或视频)并将其粘贴到平板上。

85510

Android O 行为变更官方指南

开发者如果对 API 使用不当,将会看到一条 ADB 消息:“URI example..com 主机名包含空白标签。此格式不正确,将不被未来 Android 版本所接受。”...在 Android O ,我们又再次使用键盘作为导航输入设备,从而为基于箭头键和 Tab 键导航构建了一种更可靠并且可预测模型。...尤其要指出是,我们对元素焦点行为做出以下变更: 现在,如果您没有为 View 对象(前景或背景图片)定义任何焦点状态颜色,框架会为 View 设置默认焦点突出显示颜色。...在 Android O ,此选项在当前具有焦点元素上显示一个 “X” 图标。...注意: 在低于 Android O 平台版本,违反这些假设条件可能导致多次定义同一个类、由于类混淆造成堆损坏和其他不良影响。

1.6K20

更新您 widget 以适配 Android 12

这些更新可以帮助您使用设备主题颜色和圆角来构建更加美观微件,从而提升微件在搜索和摆放时可发现性和视觉观感。...在第二篇文章,我们将了解新 API,通过它们可以使微件更加个性化、响应更灵敏并且更具互动性。 视觉变化 对于用户来说,毫无疑问最直观视觉变化是风格和设计上改变。...在 Android 12 ,动态颜色可以使您微件与其它微件以及系统保持一致风格。...对于 SDK 级别低于 31 设备,您需要创建一个继承自 DeviceDefault 自定义主题。...在下一篇文章,我们将会了解新 API,它可以使您微件更加个性化,响应更灵敏且更具互动性。 欢迎您 点击这里 向我们提交反馈,或分享您喜欢内容、发现问题。您反馈对我们非常重要,感谢您支持!

88330

Notification与Widget(其实没怎么讲)Android应用界面开发

这就是一个默认通知Notification要素,左边一个图片,中间两行文字,一行大一行小,右侧一个时间(一般显示通知出现系统时间),和一个小图标 我拿新工具过来,总是爱直接从Android studio...这里,More text表示下拉后显示更多文本 ? 这个呢,下拉后多显示一块图片 ?...这里用来选择在通知来时候,设备最上方显示图案 ?...接下来使用NotificationCompat.Builder创建通知,老方法在API 23只后就已经删掉了,用不了!...setLights(int argb, int onMs, int offMs):设置三色灯,参数依次是:灯光颜色, 亮持续时间,暗时间,不是所有颜色都可以,这跟设备有关,有些手机还不带三色灯; 另外

1.4K40

Android编程权威指南》之Android SDK版本与兼容

本章学习Android系统版本相关知识。 Android SDK版本 Android Studio “ New Project”向导可查看。...) 以最低版本设置值为标准,操作系统会拒绝将应用安装在系统版本低于标准设备上。...编译目标的最佳选择为最新API级别。 安全添加新版本 API 代码 由于一般应用SDK最低版本和编译版本间差异较大,如果是在老版本系统上,调用了新版本代码,那应用就会崩溃。...解决问题方法可以提升SDK最低版本,可这只是回避了兼容性问题,比较推荐方法是,将高API级别代码置于检查Android设备版本条件语句中。...类来定制该如何启动activity,调用makeClipRevealAnimation(...)让CheatActivity出现时带动画效果,这是 Android SDK API 23级才加入方法,所以会有波浪线报错

1.3K20
领券