当前位置: 首页 > 知识库问答 >
问题:

Android在激活时通过Java更改EditText重音的颜色

庞鸿骞
2023-03-14

我一直在使用下面的代码,这是我从另一个问题中得到的,将代码分成两行,以编程方式编辑颜色。

以编程方式更改Android EditText的着色颜色

((EditText) row1.getVirtualChildAt(i))

下面的代码是我在上面一行之后用来更改颜色的代码。

.getBackground().mutate().setColorFilter(getResources().getColor(R.color.Green), PorterDuff.Mode.SRC_ATOP);

现在它设置下划线颜色,所以无论是否使用编辑文本框,下划线总是绿色的。

如何设置它,使其在单击编辑文本框后返回默认颜色。作为默认颜色,我也将使用另一种颜色指定为灰色。

共有3个答案

慕嘉茂
2023-03-14

我最终得到了这里给出的答案:如何以编程方式创建ColorStateList?

我确实改变了一些事情,因为秩序确实很重要,我花了一点时间才意识到这一点。

将下面的代码块放在MainActivity的开始处。

int[][] states = new int[][] {
        new int[] { android.R.attr.state_focused}, // enabled
        //new int[] {-android.R.attr.state_enabled}, // disabled
        //new int[] {-android.R.attr.state_checked}, // unchecked
        new int[] { android.R.attr.state_window_focused}  // pressed
};

int[] colors = new int[] {
        Color.GREEN,
        //Color.BLUE,
        //Color.YELLOW,
        Color.GRAY
};

ColorStateList myColorAccentList = new ColorStateList(states, colors);

然后将语句放在需要的for循环中。

((EditText) row1.getVirtualChildAt(i)).setBackgroundTintList(myColorAccentList);

对于其他人,您可能只想在edittext的末尾添加此部分。

.setBackgroundTintList(myColorAccentList);
琴俊人
2023-03-14

您可以为要添加到res/color/your_edittext_color_状态中的不同编辑文本状态创建颜色选择器xml。xml文件夹。

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true" android:color="#YOUR_COLOR"/>
    <item android:state_focused="true" android:color="#ANY_COLOR"/>
    <item android:color="#DEFAULT_COLOR"/>
</selector>

然后可以在代码中设置foregroundTint

编辑文本。setForegroundTintList(getApplicationContext()。getResources()。getColorStateList(R.color.your_edittext_color_state));

闻深
2023-03-14

您可以注册您的编辑文本与OnFocus usChangeListener.java和焦点更改您可以更改颜色。

void onFocusChange(View v, boolean hasFocus) {
if(hasFocus){
// color while typing
}else{
// color when clicked away
}

}
 类似资料:
  • 如何根据android edittext的背景颜色(动态)更改android edittext光标颜色?。如果我选择深色背景颜色编辑文本,光标将是浅色。如果我选择深色背景颜色编辑文本,光标将是暗色。基于edittext颜色更改,光标颜色将在运行时更改。如何实现?任何想法都欢迎。

  • 我在IntelliJ14中使用了一个黑暗的主题,问题是我很难区分活动标签,因为它的头的背景和我打开的其他标签没有什么不同(或者是,但是很少)。我到处找了一个方法来改变活动标签头的背景颜色,但到目前为止还没有运气。请帮帮忙?

  • 我正在使用设计库中新的。我能够让它显示和改变浮动标签的颜色。不幸的是,实际的提示现在总是白色的。 我尝试过用XML、样式和编程方式更改hintColor,还尝试过使用android。支持v7。小装置。AppCompatiEditText但是提示始终显示白色。 这是我的和 下面是我用于的样式(我尝试将属性设置为黑色,但没有为我做任何事情):

  • 本文向大家介绍Android更改EditText下划线颜色样式的方法,包括了Android更改EditText下划线颜色样式的方法的使用技巧和注意事项,需要的朋友参考一下 前言 相信大家都知道,当使用AppCompatEditText(Edit Text)时,默认的下划线是跟随系统的#FF4081的颜色值的,通过改变这个值可以改变所有的颜色样式 有时候你想单独定义某一个界面的颜色样式,则可以这样做

  • 问题内容: 我正在使用appcompat v7在Android 5及更低版本上获得一致的外观。效果不错。但是我不知道如何更改EditTexts的底线颜色和强调颜色。可能吗? 我试图定义一个自定义项(请参见下文),但是我仅成功更改了完整的背景色或文本色,但没有更改底线或强调色。是否有要使用的特定属性值?我必须通过android:background属性使用自定义可绘制图像吗?不能指定六种颜色吗? 根

  • 示例:http://undeniable.info/img/temp_ss.png 我使用的是用户审批系统,因此说您的帐户处于活动状态的消息根本不合适。我们仍然希望我们的用户确认他们的电子邮件,因此我想将邮件“帐户激活”更改为“帐户电子邮件验证”,并将“激活您的帐户”更改为“验证您的帐户电子邮件”或类似的内容。 在我的整个public_html dir中搜索这些帐户激活的消息时,不会返回任何内容,