首页
学习
活动
专区
工具
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%也在计算范围之内

8.7K41

3.6 自定义View (3.6.1)

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

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

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

    5.6K51

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

    自定义圆形图片

    圆形图片相必是项目开发中也是不少用一个知识点吧。...那么这里学习一下简单制作圆形图片,主要运用 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.7K21

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

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

    2.3K100

    程序员必知Android 代码规范

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

    88730

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

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

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

    1.2K30

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

    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

    33720

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

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

    2.6K100

    扩展HT for Web之HTML5表格组件Renderer和Editor

    渲染器,在HT for Web提供常用Renderer: enum:枚举类型 color:颜色类型 boolean:真假渲染器 text:文本渲染器 和编辑器一样也可以自定义渲染器,但是方式不太一样...效果图中,左边表格第二列,是定义了一个编辑器,用一个圆盘表示当前文本旋转角度,可以通过拖拉来实现角度变换;表格第三列,是通过drawCell()方法绘制单元格内容,中间线标识旋转角度为零,向左表示文本逆时针旋转指定角度...用户通过拖拉组件可以改变角度,这个改变是连续,而且在拖拉时候可能鼠标会离开组件区域,要实现离开组件区域也能够正确改变值,那么这时候就需要调用HT for WebstartDragging()方法...自定义编辑器这块并像其他已经实现了编辑器那样可以指定编辑器属性,自定义编辑器能够指定就只有一个类名,所以在编辑器上设置参数是没用,用户无法设置到编辑器中。...在表格第三列中,通过渲染器自定义了单元格样式,同时我也为其定义了另外一个编辑器,通过左右拖拉单元格实现角度变化,这个编辑器实现与上面谈及编辑器略有不同,具体不同之处在于,第三列编辑器通过HT

    1.7K70
    领券