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

有没有人能想出一个自定义渲染器的解决方案来改变Android中下划线的颜色?

在Android中,可以通过自定义渲染器来改变下划线的颜色。下面是一个解决方案:

  1. 创建一个自定义的EditText类,继承自android.widget.EditText。
代码语言:txt
复制
public class CustomEditText extends EditText {
    public CustomEditText(Context context) {
        super(context);
    }

    public CustomEditText(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public CustomEditText(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }

    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);

        // 获取EditText的底部位置
        int bottom = getHeight() - getPaddingBottom();

        // 获取EditText的画笔
        Paint paint = getPaint();

        // 设置画笔颜色为红色
        paint.setColor(Color.RED);

        // 绘制下划线
        canvas.drawLine(getPaddingLeft(), bottom, getWidth() - getPaddingRight(), bottom, paint);
    }
}
  1. 在布局文件中使用自定义的EditText。
代码语言:txt
复制
<com.example.CustomEditText
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="Hello World!" />

这样,就可以将EditText的下划线颜色改为红色。这个解决方案可以应用于需要自定义下划线颜色的场景。

推荐的腾讯云相关产品:腾讯云移动直播(https://cloud.tencent.com/product/mlvb)可以用于实时音视频直播,适用于直播、教育、电商等行业。

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

相关·内容

Android原生TabLayout使用全解析,看这篇就够了

在效果实现上,同学会选择自定义View做,定制性高,但易用性、稳定性、维护性不敢保证,使用官方组件避免这些不确定性,一是开源,很多大佬共建,会不停迭代;二是经过大型app验证,比如google...6.下划线样式 通过app:tabIndicator可以设置自定义样式,比如通过shape设置圆角和宽度。.../shape> 7.下划线宽度 默认情况下,tabIndicator宽度是填充整个Tab,比如上图中一个,我们可以简单设置不填充,与文本对齐...常见解决方案都是在尾部加一个红点提示。 那么问题来了,如何判断某一个Tab是否可见呢,翻看了源码,可惜并没有提供相应api,那只能我们自己实现了。...这里一个优化点,比如上图中“腾讯”Tab,它是可见,但是红点不可见,那么问题就来了,如果我们没有提示到,是很容易产生客诉,所以这里在计算时候也加了一个条件,就是可见范围小于80%也在计算范围之内

9.1K41

3.6 自定义View (3.6.1)

自定义控件作为Android一个非常重要功能,一直以来都被初学者认为是代表高手象征。...特别是现在Android ROM多样性,导致Android适配变得越来越复杂,很难保证自定义View在其他手机上也达到你想要效果。...当然,了解Android系统自定义View过程,可以帮助我们了解系统绘图机智。同时,在适当情况下也可以通过自定义View帮助我们创建更佳灵活布局。...当然,创建自定义View时候,并不需要重写所有的方法,只需要重写特定条件回调方法即可。这也是Android控件架构灵活性体现。 通常情况下,以下三种方法实现自定义控件。...要想实现这个效果,可以充分利用Android中Paint对象Shader渲染器。 通过设置一个不断变化LinearGradient,并使用带有该属性Paint对象绘制要显示文字。

53020
  • Android如何自定义EditText光标与下划线颜色详解

    前言 最近在写些小Demo复习基础,在用到EditText时候突然发现之前几乎没有注意到它光标和下划线颜色,于是花了不少时间,看了不少博客,现在就来总结和分享一下收获,话不多说了,一起看看详细介绍...现在就让我们循序渐进,先修改它光标颜色。 ? 2、自定义光标颜色 EditText 一个属性:android:textCursorDrawable ,它就是用来设置光标样式。...网上有些自定义EditText下划线教程就是这样操作,先把背景去除,再在下面加一个横线。这样操作未尝不可,但是为了美观,还是得重新设置间距值。。...5、全局修改EditText颜色 前面的做法都是针对一个EditText修改,如果需要把项目中所有的EditText颜色都改掉的话,那这样做的话工作量就太大了。有没有办法可以一脚定江山呢?...参考文献 Android EditText 改变边框颜色 Android更改EditText下划线颜色样式方法

    5.8K51

    Android开发笔记(一百五十三)OpenGL绘制三维图形流程

    正如前面介绍Android自定义控件那样,了视图View、画布Canvas、画笔Paint,方能绘制炫彩多姿各种控件。...,对应于二维绘图View;GLSurfaceView.Renderer是三维图形渲染器,对应于二维绘图Canvas;最后一个GL10自然相当于二维绘图Paint了。...为方便理解,接下来不妨继续套用Android二维绘图有关概念,从Android自定义控件主要流程得知,自定义一个二维控件,主要有以下四个步骤: 1、声明自定义控件构造函数,可在此进行控件属性初始赋值等初始化操作...; 2、onSurfaceChanged函数在GLSurfaceView创建、恢复与改变时调用,在这里不但要定义三维空间大小,还要定义三维物体方位,所以该函数相当于完成了自定义控件onMeasure..." /> 接着在Activity代码中获取这个GLSurfaceView对象,并给它注册一个三维图形渲染器GLRender,此时自定义渲染器GLRender必须重载

    1.9K20

    SDL系列讲解(四) demo讲解

    1; 使用SDL_CreateWindow 创建一个窗口,如果没用初始化过Video,窗口会先初始化Video子系统,然后,进行查找Android平台上OpenGL es 库,初始化完成,将对应全局数据赋值...,同时将Window和Android上层创建SurfaceView对应AnativeWindow通过eGL方法绑定,完成Window关联。...,对我们图片,使用了一个方法 SDL_SetColorKey,这个方法传入三个参数,图片,是否使颜色值。...含义是,如果使(SDL_TRUE),我们会将图片中对应颜色值处理成透明色,也就是抠掉了里面的某个颜色。一般用在去除一种底色。这里我们将sdl.bmp图片里面的白色去掉。...在渲染过程中,我们使用SDL_PollEvent获取是否有事件传过来,如果有,我们看下,如果是退出,或者按键或者手指触摸滑动,我们退出循环。

    1.7K50

    自定义圆形图片

    圆形图片相必是项目开发中也是不少用一个知识点吧。...那么这里学习一下简单制作圆形图片,主要运用 BitmapShader 类知识实现 一、首先,了解一下 BitmapShader 类 BitmapShader是Shader子类,可以通过Paint.setShader..., TileMode); 调用这个方法产生一个一个位图渲染器(Shader) 看参数 bitmap 即在渲染器位图 TileMode ,分为三类 1、CLAMP  :如果渲染器超出原始边界范围...,会复制范围内边缘染色,即拉伸 2、REPEAT :横向和纵向重复渲染器图片,平铺,即重复 3、MIRROR :横向和纵向重复渲染器图片,这个和REPEAT重复方式不一样,他是以镜像方式平铺,类似于湖上物体和湖中倒影...(); // 参数为一个资源文件 5 imageView.setImageBitmap(); // 参数为一个Bitmap 对象 那么我们这里实现方法为 自定义继承Drawable类 ,运用 imageView.setImageDrawable

    1.9K80

    Android Studio利用AChartEngine制作饼图方法

    下面话不多说了,一起看看详细介绍吧 AChartEngine简介: AChartEngine是一款基于Android图表绘制引擎; AChartEngine支持绘制饼图、柱状图、折线图、散点图等;...AChartEngine绘制图表都支持水平(默认)或垂直方式展示,并且支持许多其他自定义功能; 所有的图表都可以建立为一个view,也可以建立为一个用于启动activityintent。...AChartEngine运行机制: 每个图表都需要一个数据集 (Dataset) 和 渲染器集合 (Renderer); 数据集:由许多数据组成; 渲染器:由不同渲染器组成; 获取Activity...renderer.setLabelsTextSize(25);//饼图上标记文字字体大小 renderer.setLabelsColor(Color.BLACK);//饼图上标记文字颜色 renderer.setPanEnabled...:调用ChartFactory.getPieChartIntent()或者 getPieChartView() 区别在于: 一个返回Intent,这个intent可以启动一个特定activity; 另一个返回

    1.7K10

    【OpenGL ES】 Android OpenGL ES -- 透视投影 和 正交投影

    了位置 和 朝向, 此时摄像机可以 360 度旋转, 这是我们需要一个 up 方向, 将摄像机固定在一个位置一个方向; 设置摄像机方法 :  void android.opengl.Matrix.setLookAtM...视口并不是占手机全部屏幕, 是显示投影部分, 也可以是一个 View 组件; 视口设置方法 :  void android.opengl.GLES20.glViewport(int x, int y...透视投影简介 透视投影 : 与现实世界观察物体一样, 近大远小 效果, 这种投影更加真实; -- 投影线介绍 : 透视投影投影线不平行, 相交于视点; -- 视景体 : 透视投影中视景体是锥台形区域...float[] colorArray = new float[vCount * 4]; //中心点设置一个颜色, 其它点设置一个颜色 for (int i = 0; i < vCount;...创建场景渲染器 * c. 设置场景渲染器 * d. 设置场景渲染器模式 * ② 自定义场景渲染器 * a.

    2.6K30

    Android中Textview文字设置不同颜色、下划线、加粗、超链接

    在项目中会遇到在一行文字,部分需要不同文字颜色、下划线以及超链接来展示,下面介绍两种方式实现: 1、SpannableString实现 1)简介 对于给Textview设置不同颜色,就不得不提SpannableString...,当然给textview设置不同字体颜色也可以通过加HTML标签实现,但是SpannableString存在,为啥不用呢....首先SpannableString、SpannableStringBuilder基本上与String差不多,也是用来存储字符串,但它们俩特殊就在于一个SetSpan()函数, 能给这些存储String...添加各种格式或者称样式(Span),将原来String以不同样式显示出来,比如在原来String上加下划线、加背景色、改变字体 颜色、用图片把指定文字给替换掉,加超链接等等。...注意:如果这些额外信息被所用方式支持,比如将SpannableString传给TextView;也有对这些额外信息不支持,比如自定义view中Canvas绘制 文字,对于不支持情况,SpannableString

    4.9K21

    C#使用Xamarin开发可移植移动应用进阶篇(6.使用渲染器针对单个平台自定义控件..很很很很重要..),附源码

    正文 1.什么是渲染器 自定义渲染器提供了一种强大方法定制Xamarin.Forms控件外观和行为。它们可用于一些微小样式更改或复杂平台特定布局和行为定制。...2.为什么需要自定义渲染器 因为在不使用自定义渲染器情况下更改Xamarin.Forms控件外观是颗粒度较粗....3.如何使用自定义渲染器 下面我们首先来通过一个例子来讲解如何使用渲染器....这里,我们特意给它加了一个蓝色背景..展示整个控件大小.. 我们会发现,进度条只是他里面很小一部分,大部分被背景占用,而且无法在Xamarin.Forms中去修改,我们无法改变高度....这时候就要用自定义渲染器了,到特点平台去优化它 首先我们在可移植库中自定义一个ProgressBar,方便Xamarin.Forms调用,代码如下: public class MyProgressBar

    2.4K100

    程序员必知Android 代码规范

    3.5.7 colors.xml name 命名使用下划线命名法,在你 colors.xml 文件中应该只是映射颜色名称一个 ARGB 值,而没有其它。...像这样规范颜色很容易修改或重构,会使应用一共使用了多少种不同颜色变得非常清晰。通常一个具有审美价值 UI 来说,减少使用颜色种类是非常重要。...name 命名使用大驼峰命名法,几乎每个项目都需要适当使用 styles.xml 文件,因为对于一个视图来说,一个重复外观是很常见,将所有的外观细节属性(colors、padding、font)...5.6.1 换行策略 这没有一个准确解决方案决定如何换行,通常不同解决方案都是有效,但是一些规则可以应用于常见情况。...当一个方法很多参数或者参数很长时候,我们应该在每个 , 后面进行换行。

    91030

    Android 自定义View 画圆(奥运五环)

    下面一一揭晓,Android中通过 Paint 和 Canvas 画画,啥玩意儿?我怎么都没有听说过呢?触及到我知识盲区!开始怀疑人生,我是谁?我在哪?中午吃什么?...Paint 这个就是笔,在Android中也叫画笔,你可以设置画笔颜色,下面通过表格来看看这个画笔哪些属性 属性 说明 setAntiAlias 设置画笔锯齿效果, true是去除,false是不去除...,粗细,还有倾斜、颜色等 setUnderlineText 设置下划线 setStyle 设置画笔样式 ,常用Paint.Style.FILL(实心)、Paint.Style.STROKE(空心)、...也通过一个表格来说明一下 属性 说明 drawARGB 画布颜色,第一个是透明度,后面是常规RGB色值 drawColor 画布颜色,可以用Android自带,也可以自定义 drawRGB 画布颜色...,只改变横坐标试一下 运行结果如下图 接下来运用这个思路一个奥运五环吧 运行效果如下图所示 除了没有颜色还是比较像

    1.4K41

    React Native 新架构是如何工作

    宿主视图树(Host View Tree):宿主视图树就是一系列宿主视图。宿主平台 Android 平台、iOS 平台等等。...假设 JavaScript 产品逻辑是,将第一个内嵌背景颜色由红色改为黄色。...这是因为,如果共享 React 影子节点父节点引起了布局改变,共享 React 影子节点布局也可能发生改变。...在上一代 React Native 渲染器中,React 影子树、布局逻辑、视图拍平算法是在各个平台单独实现。当前渲染器设计上采用是跨平台解决方案,共享了核心 C++ 实现。...但在 Android 端还有两种例外,渲染器依然会有 JNI 开销: 复杂视图,比如 Text、TextInput 等,依然会使用 JNI 传输属性 props。

    2.8K10

    AndroidSpannableString与SpannableStringBuilder详解

    String上加下划线、加背景色、改变字体颜色、用图片把指定文字给替换掉,等等。...(2)、这里用一个改变字体颜色Span做下演示 public class MainActivity extends Activity { private EditText editText...//先构造SpannableString SpannableString spanString = new SpannableString("欢迎光临Harvic博客"); //再构造一个改变字体颜色...; //再构造一个改变字体颜色Span ForegroundColorSpan span = new ForegroundColorSpan(Color.BLUE); //将这个Span应用于指定范围字体...7、图片置换(ImageSpan) ImagSpan很多构造函数,一般是通过传入Drawableg构造,详细构造说明看这里:http://developer.android.com/reference

    2.8K20

    Android自定义View-入门(明白自定义View和自定义ViewGroup)

    为什么一个 数里面放两个信息呢?...warp_content,match_parent以及写成固定尺寸什么对应关系呢?...重写onDraw 上面我们通过重写 onMeasure 实现了布局测量与设定,接下来就是绘制了。绘制的话 我们直接在画板 Canvas 对象上绘制就好。 我们以一个简单Demo实现效果。...所以这个时候就需要我们自定属性,让用户用我们定义属性。 过程 首先我们需要在 res/values/styles.xml 文件(如果没有就需要新建),里面声明一个我们自定义属性: 然后在我们自定义View里面吧我们自定义属性值取出来,在构造函数中,个AttributeSet属性,我们需要用它帮我们把布局里面的属性取出来。

    1.2K30

    Android 应用开发】Android 图表绘制 achartengine 示例解析

    项目地址 AChartEngine 简介 : AChartEngine 是 Android 平台图表开发库, 绘制 折线图, 饼图, 气泡图, 柱状图, 散点图, 面积图等统计图表; 最新版本 :...; -- XYSeries : 属于 图表数据集一部分, 每个都代表了一个数据集合 例如 折线, 一个图表中可以多条折线, 所有的数据放在一起就是 数据集 XYMultipleSeriesDataset...饼图渲染器 相关类介绍 :  -- DefaultRenderer : 饼图渲染器, 单饼图 和 多饼图使用渲染器都是同一个; -- DefaultRenderer : 饼图单个元素渲染器, 一个饼图多个该渲染器渲染..., 整个图表多组该渲染器; 数据准备 :  -- 饼图元素颜色 : int[] colors, 将饼图中所有的颜色放在一个数组中, 每个元素都有一个颜色; DefaultRenderer 类方法介绍...[] colors, 一个柱状图图表中含有若干个柱状图, 每个柱状图都设定一个颜色; 代码示例 :  /** * 柱状图(渲染器) : 创建柱状图渲染器 * * @param

    2K40

    帮学长毕业设计总结:AChartEngine创建图表步骤

    AChartEngine 首先要做一个用于展示支出、收入饼状图,效果如下: 之前没有接触过图表绘制,经过实现这个功能了解并学习了AChartEngine,这是专门用于android绘制图表(...添加完后会在引用库中显示该jar包 (3)在AndroidManifest.xml中配置jar包中一个activity, org.achartengine.GraphicalActivity,好像是绘图要调用他...};  (2)创建一个DefaultRenderer方法,用于创建一个Renderer渲染器,其实就相当于一个画板;在里面再创建SimpleSeriesRenderer对象,就是画笔。..."> protected DefaultRenderer buildCategoryRenderer(int[] colors, List list) { //创建一个渲染器对象...当数据增多时调用自定义颜色, r.setColor(getRandomColor())<span style="white-space:pre

    34420

    网页中添加下划线方法汇总及优缺点

    如果我们讨论一个理想场景,下划线应该符合以下特点: 位于文本基线以下 避开下行字母 可以改变颜色、粗细及样式 适用于文本换行情况 适用于任意背景 我认为这些要求非常合理,但是据我所知,CSS 中还没有简单方法实现上述所有要求...Jameson (@johndjameson) on CodePen. text-decoration 最大问题是缺乏自定义。它继承文字颜色及字号,并且无法通过跨浏览器方式改变样式。...现在,需要四个属性定义一个单下划线。相比 text-decoration 工作量要大。...优点 可以位于文本基线以下 使用 text-shadow 属性可以避开下行字母 可以改变颜色、粗细(允许半个像素)及样式 适用于自定义图片 可以换行 只要不使用 text-shadow ,可以适用于任意背景...一个关于它 工作原理 9 分钟视频,但是我可以简单说一下:它是通过  元素添加下划线。这是一种新方法,效果非常好。

    2.6K100

    最详细 Android Toolbar 开发实践总结

    Android 5.1 默认ActionMenu Item风格 此时,如果我需求要改变一下item文字颜色,应该怎么破?...我按照网上比较普遍解决方案,做了如下两步修改操作: 在styles.xml中自定义一个Theme,并设置 actionMenuTextColor 属性(注意:不是 android:actionMenuTextColor...在布局文件Toolbar中设置popupTheme(注意:是toolbar:xxx,不是android:xxx) ? 运行之后,文字颜色并没有发生任何改变。...说好改变颜色呢…..找来找去,最后再 StackOverflow 找到一个还不错解决方案,就是把上面的 actionMenuTextColor 属性换成 android:textColorPrimary...成功修改 actionmenu item 文字颜色 这种方法也有一个小缺点,如果我把自定义控件换成Button,你会发现Button默认文字颜色也变成了红色。

    80920
    领券