- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个游戏,我需要根据用户输入更改文本的颜色
我使用不同的方法在两个地方更改了文本,这两种方法在某些设备上都失败了,并且 textColor 在这些设备上总是变成黑色并带有白色笔划,但是我从来没有在我的代码中的任何地方添加笔划,到目前为止报告的设备是 Samsung galaxy prime , 小米 Mi A2 Lite, 华为 P20 Pro,但是我在我的一个 friend 的三星 galaxy prime 上试过这个游戏并且运行完美,所以我无法在我的测试设备上产生这个问题
显示问题的图片,所有文本均为黑色,笔触颜色为白色
普通图片
键盘部分的第一个方法我的代码如下
btns[t].setTextColor(ContextCompat.getColor(getContext(),R.color.text_color));
当用户设置夜间模式时,我将其更改为
btns[t].setTextColor(ContextCompat.getColor(getContext(), R.color.text_color_night));
其中颜色是 text_color = #000000/text_color_night = #ffffff
棋盘部分的第二种方法,我的代码是
private final Paint selectedBox = new Paint();
private final TextPaint letterTextNormal = new TextPaint();
private final TextPaint letterTextCorrect = new TextPaint();
private final TextPaint letterTextWrong = new TextPaint();
public PlayboardRenderer(Context con) {
letterTextNormal.setTextAlign(Align.CENTER);
letterTextNormal.setAntiAlias(true);
letterTextNormal.setTypeface(((MainActivity) con).getSelectedFont());
letterTextCorrect.setTextAlign(Align.CENTER);
letterTextCorrect.setAntiAlias(true);
letterTextCorrect.setTypeface(((MainActivity) con).getSelectedFont());
letterTextWrong.setTextAlign(Align.CENTER);
letterTextWrong.setAntiAlias(true);
letterTextWrong.setTypeface(((MainActivity) con).getSelectedFont());
}
private void drawBox(Canvas canvas, int x, int y, int row, int col, float scale, Box box, Word currentWord) {
int boxSize = (int) (BOX_SIZE * scale);
// scale paints
float textSize = (boxSize) - (boxSize / 5);
letterTextNormal.setTextSize(textSize);
letterTextCorrect.setTextSize(textSize);
letterTextWrong.setTextSize(textSize);
if (!box.isBlank() && !box.isEmpty())
if (box.getState() == Box.STATE.NORMAL) {
canvas.drawText(Character.toString(box.getChar()), x + (boxSize / 2), y + (int) (textSize * 0.9), letterTextNormal);
} else if (box.getState() == Box.STATE.WRONG) {
canvas.drawText(Character.toString(box.getChar()), x + (boxSize / 2), y + (int) (textSize * 0.9), letterTextWrong);
} else if (box.getState() == Box.STATE.CORRECT) {
canvas.drawText(Character.toString(box.getChar()), x + (boxSize / 2), y + (int) (textSize * 0.9), letterTextCorrect);
}
}
}
最佳答案
在我终于拿到有这个问题的设备之后我发现它已在设备 Settings>Accessibility>High contrast text
中打开选项如果用户打开此选项,它会强制所有 TextViews textColor 为黑色或白色
所以你可以在代码中检查用户是否启用了这个选项,并使用下面的代码进行相应的操作
/**
* Returns if the high text contrast in the system is enabled.
* <p>
* <strong>Note:</strong> You need to query this only if you application is
* doing its own rendering and does not rely on the platform rendering pipeline.
* </p>
*
* @return True if high text contrast is enabled, false otherwise.
*
* @hide
*/
public boolean isHighTextContrastEnabled() {
synchronized (mLock) {
IAccessibilityManager service = getServiceLocked();
if (service == null) {
return false;
}
return mIsHighTextContrastEnabled;
}
}
所以在你的代码中,你可以通过这样做来访问这个方法
AccessibilityManager am = (AccessibilityManager) this.getSystemService(Context.ACCESSIBILITY_SERVICE);
boolean isHighTextContrastEnabled = am.isHighTextContrastEnabled();
关于android - 在某些设备上无法在 Android 中设置 textColor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57176533/
如果我的问题看起来很新手,我很抱歉,textColor 和 android:textColor 有什么区别?我不明白在哪里使用哪个感谢您的帮助 最佳答案 textColor 是 AppCompat 库
我一直想知道这个问题。 构建 XML 时 Android布局,我们可以定义一个TextView使用 RGB 十六进制代码或来自 color.xml 的颜色值的文本颜色文件。 android:textC
Android searchview 有默认的 queryhint textcolor 和 text color 。我们如何使用 AndroidX 在 Android Searchview 中更改 e
我只是想将我的文本文本字段设置为与详细文本标签颜色相同的颜色,这似乎是正确的方法,在这里看到了一些提供此答案的内容,但我收到了错误,有什么想法吗? txtPassword.textColor = ce
我遇到的问题是我无法在以下 javascript 表单中设置两种不同的文本颜色(通过 css 类)。标准类是灰色(灰色文本颜色),但是一旦有人点击“在此处输入您的邮件”,要输入的电子邮件颜色文本应该是
如何将用户输入的颜色传递给 conio.h 中的 textcolor() 函数? textcolor(BLUE); cprintf("Hello"); 工作正常,但是 char c[20]; gets
我是安卓新手。在这上面花了 3 天之后,我无法弄清楚。 android:textColor= 在 TextView 上,但它不会改变颜色。我可以更改所有其他值,但不能更改 textColor。 最佳答
我的应用程序中有一个 Edittext。我在 XML 中以下列方式将其默认颜色设置为黑色: android:textColor="@android:color/black" 布局:
我只是想使用这段代码更改我的回收 View 中的文本颜色 ↓↓↓ itemView.resultTV.textColor = if (result >= 0) R.color.green else R
如何在禁用控件时更改文本的颜色。我想在 C# winforms 中禁用控件时设置不同的颜色。 最佳答案 编辑:我在评论中犯了与 Cody 相同的错误,因此更正了我的答案。 要看是哪个控件。 例如,如果
在flutter和我的应用程序中,我尝试不使用FlatButton来更改一些ThemeData文本颜色,因为在应用程序的某些部分中,我希望按钮具有白色或红色文本, 我如何正常设置此文本颜色? 例如:
对于我的 uipickerview,我有: - (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row fo
我有这样的布局。这里我将 textColor 设置为红色。 当我在模拟器上运行它时,一切都按预期工作。但是,当我在设备上运行时,textColor 是白色的。它曾经在设备上工作。 我用模拟器做了很多代
我在使用标准 android Switch 组件时遇到了一个奇怪的问题。 我已经分配了我的自定义跟踪器和拇指可绘制对象 - 一切看起来和工作正常,除了 textColor 属性的颜色始终是深色(可能是
我编写了一个依赖资源中定义的颜色的应用程序。有些是直接在布局 XML 文件中设置的,有些是在代码中设置的。示例: res/values/styles.xml 中的颜色定义: #33B5E5 布局:
我的应用程序中有几个按钮,我想为所有按钮应用一种样式。 以下是我放在 values 文件夹中的 styles.xml 文件。 bold #282780
我一直在研究在用 C 编写的 DOS 程序中使用颜色。有人告诉我 conio.h 具有 textcolor() 函数,但是当我在我的代码中使用它时,编译器/链接器抛出错误提示我有一个未定义的函数引用。
我正在做一些教程,我尝试尝试使用 textColor。使用每个 Widget 中的属性、布局 xml 或样式属性,这可以很好地工作。但我想知道是否可以定义一个全局 textColor,据我所知是不可能
我正在尝试将通过代码创建的 ColorStateList 应用为 TextView 的 TextColor。问题是,如果我使用在 xml 中定义的 ColorStateList,它会起作用,但当我通过
我设法在我的代码中使用了一个 spinner 并且想通过那个 spinner 改变 MainActivity 文件中某个文本的 textColor,但是他位于另一个类文件 - Einstellunge
我是一名优秀的程序员,十分优秀!