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

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设备上也能正确显示文本颜色。
  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.7K20

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

应该是好久没有写有关技术类的文章了,前天还有人在群里问我,说群主很长时间没有分享干货了,今天分享一篇Android中TextView在大段的文字内容中如何让关键字高亮变色的文章 ,希望对大家有所帮助,我终于在歪路上回归正途了...今天分享的文章大概内容是在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...关于BufferInfo中的presentationTimeUs设置 如果不正确设置presentationTimeUs,有的设备的编码器会丢掉输入桢,或者输出图像质量很差,参见bigflake FAQ...也就是默认采用VBR 关于VBR CQ CBR区别,可查看Android原生编解码接口 MediaCodec 之——完全解析中的流控。

    6.1K20

    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 中绘制黑色文本,再为其设置半透明的透明度值。但是,您可以简单地通过用灰色绘制文本来获得同样的效果,而且能够大幅提升性能。

    3.2K21

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

    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.7K80

    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

    3.1K30

    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

    3.1K30

    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.4K20

    Android 13 SDK更新内容

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

    2.1K10

    Android后台网络任务:从WorkManager到JobScheduler的全面解析

    WorkManager 根据设备的 API 级别选择合适的调度策略。对于 API 级别为 23 及以上的设备,WorkManager 使用 JobScheduler 进行任务调度。...对于 API 级别低于 23 的设备,WorkManager 会使用 AlarmManager 和 BroadcastReceiver 的组合进行任务调度。...仅支持Android 5.0(API级别21)及以上 针对高性能和节能要求较高的应用 五、案例分享 以下是一个实际的Android后台网络任务项目案例,讲述了在开发过程中遇到的问题、使用的技术和解决方案...5.1 场景和问题 场景:我们需要为一个新闻应用开发后台任务,定期从服务器获取最新新闻,并在获取成功后显示通知。 问题:如何在不同API级别的设备上实现高效且节能的后台任务调度?...:在获取新闻成功后,我们在 NewsWorker 类中创建并显示通知。

    47210

    Android O 行为变更官方指南

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

    1.7K20

    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、图片、文本或视频)并将其粘贴到平板上。

    92710

    更新您的 widget 以适配 Android 12

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

    95130

    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.6K20

    简单了解下无障碍设计模式

    辅助技术通过屏幕阅读器、放大设备、轮椅、助听器或记忆辅助设备等设备帮助增强、维持或改善残疾人的能力。 颜色和对比度 使用颜色和对比度来帮助用户查看和解读应用的内容,与正确的元素交互,并理解操作。...错误示例 这些文本没有遵循合颜色对比度建议,在它们的背景色中很难进行阅读。 图标或其他关键元素也应使用上述推荐的对比度。 正确示例 这些图标遵循颜色对比度建议,和它们的背景色之间有清晰的对比。...移动设备或浏览器有调整系统字体大小的功能。要在 Android 中使用系统字体大小,使用可缩放像素(sp)来标记文本极其关联容器。 确保为大型字体和外语字体分配了足够的空间。...其他设计的注意事项: 使用可缩放文字和一个宽敞的布局,来适应那些可能开启大文字、颜色矫正、放大或其他无障碍功能的用户 键盘/鼠标界面可以仅通过键盘就能访问所有任务和所有悬浮信息 触摸界面应允许屏幕阅读器和其他无障碍设备读取界面中的所有内容...视力低下或没有视力的用户会从清晰易懂的文字描述中受益。无障碍文本是指供屏幕阅读器软件使用的文本,例如 Android 上的 TalkBack、iOS 上的 VoiceOver、桌面端的 JAWS。

    4.8K40
    领券