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

Android:更改单个EditText的色调

韦熙云
2023-03-14

我在Android中找到了各种各样的关于如何通过编程改变EditText行颜色的答案。我现在正在使用这个解决方案:

    final Drawable originalDrawable = editText.getBackground();
    final Drawable wrappedDrawable = DrawableCompat.wrap(originalDrawable);
    DrawableCompat.setTintList(wrappedDrawable, ColorStateList.valueOf(darkVibrantColor));
    editText.setBackground(wrappedDrawable);

这实际上会更改为EditText的颜色,但不幸的是,它不仅会更改我正在使用的特定EditText的线条颜色,还会更改我的应用程序中使用的所有EditText的线条颜色。事件,如果他们在不同的活动中。

如何仅更改一个特定EditText的线条颜色而不全局更改线条颜色?谢谢

更新:我不能使用预定义的样式,因为颜色是在应用程序运行时动态生成的。

共有3个答案

袁卓
2023-03-14

我找到了解决办法。这是张贴在这个(不接受)的答案。诀窍是在从EditText检索到可绘制的背景后对其进行变异。

这是我的工作代码:

final Drawable originalDrawable = editText.getBackground();
originalDrawable.mutate();
final Drawable wrappedDrawable = DrawableCompat.wrap(originalDrawable);
DrawableCompat.setTintList(wrappedDrawable, ColorStateList.valueOf(darkVibrantColor));
editText.setBackground(wrappedDrawable);
施锋
2023-03-14

我提供了以编程方式更改EditText下划线颜色的代码。

EditText editTextOne=(EditText) findViewById(R.id.edit_text_one);
Drawable drawable=editTextOne.getBackground();
int color=Color.parseColor("#FFFFFF");
drawable.setColorFilter(color, PorterDuff.Mode.SRC_ATOP);
if (Build.VERSION.SDK_INT > 16) {
    editTextOne.setBackground(drawable);
} else {
    editTextOne.setCompoundDrawables(null,null,drawable,null);
}
谭建章
2023-03-14

试试这个,可以帮你吗

在你的style.xml

<style name="MyEditText" parent="Theme.AppCompat.Light">  
    <item name="colorControlNormal">@color/indigo</item>
    <item name="colorControlActivated">@color/pink</item>
    <item name="android:padding">20dp</item>
    <item name="android:textSize">16dp>
    <item name="android:editTextColor">@color/black</item>
    <item name="android:tint">@color/colorPrimary</item>
</style>  

在编辑文本中添加样式

<EditText  
    style="@style/MyEditText"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:hint="Subject"/>
 类似资料:
  • 如何根据android edittext的背景颜色(动态)更改android edittext光标颜色?。如果我选择深色背景颜色编辑文本,光标将是浅色。如果我选择深色背景颜色编辑文本,光标将是暗色。基于edittext颜色更改,光标颜色将在运行时更改。如何实现?任何想法都欢迎。

  • 我遇到过这个奇怪的问题,在开始时,字段的颜色更改为,就像在出现时一样。而且,这种情况并不是每次都发生,只是在某些情况下才会出现。如何修复此bug?任何帮助都很感激。请参阅图片更多。这是代码 以下是样式:

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

  • 我有一系列基于用户选择的EditText单元格,其中一些单元格将自动填充,然后我通过执行“myCell[x].setEnabled(false)”将这些EditText单元格更改为不可编辑。在这种情况下,字体颜色变为灰色,可读性不好。有没有一种方法可以改变EditText字体的颜色。setEnabled(false)或是否有其他方法通过对字体类型和颜色的更多控制来禁用单元格的可编辑性?我可以改变背

  • 我一直在使用下面的代码,这是我从另一个问题中得到的,将代码分成两行,以编程方式编辑颜色。 以编程方式更改Android EditText的着色颜色 下面的代码是我在上面一行之后用来更改颜色的代码。 现在它设置下划线颜色,所以无论是否使用编辑文本框,下划线总是绿色的。 如何设置它,使其在单击编辑文本框后返回默认颜色。作为默认颜色,我也将使用另一种颜色指定为灰色。

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