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

安卓onDraw不会在自定义EditText中绘制任何内容

是因为EditText已经内置了绘制文本的功能,而onDraw方法是用于自定义绘制视图的方法。当我们自定义EditText时,如果想要绘制额外的内容,可以通过重写onDraw方法来实现。

在重写onDraw方法时,需要注意以下几点:

  1. 首先,需要调用父类的onDraw方法,以确保EditText原有的绘制功能正常工作。
  2. 然后,在调用父类的onDraw方法之后,可以在画布上绘制自定义的内容,例如添加背景、边框、图标等。
  3. 最后,通过invalidate方法或者其他方式触发视图的重绘,以使得自定义的绘制内容能够显示出来。

需要注意的是,如果在自定义EditText中使用onDraw方法绘制文本内容,可能会导致原有的文本绘制被覆盖或者无法正常显示。因此,如果需要对文本进行自定义绘制,建议使用其他方法,例如使用SpannableString来设置不同样式的文本。

关于安卓onDraw方法和自定义视图的更多信息,可以参考腾讯云的开发文档:

腾讯云相关产品和产品介绍链接地址:

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

相关·内容

HenCoder Android 自定义 View 1-5: 绘制顺序

} ... } 这是自定义绘制最基本的形态:继承 View 类,在 onDraw() 完全自定义它的绘制。...在之前的样例,我把绘制代码全都写在了 super.onDraw() 的下面。...而这种基于已有控件的自定义绘制,就不能不考虑 super.onDraw() 了:你需要根据自己的需求,判断出你绘制内容需要盖住控件原有的内容还是需要被控件原有的内容盖住,从而确定你的绘制代码是应该写在...觉得怎么可能会有谁想要在背景的下面绘制内容?别这么想,有的时候它还真的有用。 例如我有一个 EditText: ? 它下面的那条横线,是 EditText 的背景。...所以如果你自定义了某个 ViewGroup 的子类(比如 LinearLayout)并且需要在它的除 dispatchDraw() 以外的任何一个绘制方法内绘制内容,你可能会需要调用 View.setWillNotDraw

81030
  • Android自定义view实现输入控件

    本文实例为大家分享了Android自定义view实现输入控件的具体代码,供大家参考,具体内容如下 ?...网络上大部分的输入控件都是多个EditText组合而成,本例采用的是: 单个EditText作为输入的捕捉控件 多个ImageView的子类作为显示的控件,绘制EditText的数据 如上图: 输入前和输入后输入框需要发生响应的改变...点击自定义控件要弹出软键盘 EditText数据捕捉,以及EditView不能操作(如果可以操作,数据处理会混乱) 输完后会得到相应的提示 ImageView的子类可以设置宽高,字体大小颜色,以及两个...View之间的间隔 那么代码走起: 首先是ImageView的子类TextImageView,onDraw的实现也很简单,就是判断text是否长度大于0,如果大于0则绘制文字,还有一些细节处理就是设置字体颜色...); } } 其次PasswordView是一个自定义ViewGroup,引入了一个布局,布局中就是一个EditText(数据捕捉)和一个Linearlayout(代码添加TextImageView

    1.1K20

    Android自定义EditText:手把手教你做一款含一键删除&自定义样式的SuperEditText

    前言 Android开发EditText的使用 非常常见 本文将手把手教你做一款 附带一键删除功能 & 自定义样式丰富的 SuperEditText控件,希望你们会喜欢。 ?...特点 对比市面上EditText控件,该控件Super_EditText 的特点是: 3.1 功能实用 一键删除功能 在需求中非常常见,现将其封装后更加方便使用 可自定义样式程度高(比自带的强大 & 方便...),不复杂却能满足一般的EditText使用需求 可自定义样式如下:(注:该样式的设置是系统自带的 API 所不具备的) ?...*/ @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas);...下一篇文章我将继续进行一些 简单 & 实用的自定义View实例讲解,有兴趣可以继续关注Carson_Ho的开发笔记 ---- 请帮顶 或 评论点赞!因为你的鼓励是我写作的最大动力!

    1.8K30

    Android自定义键盘的实现(数字键盘和字母键盘)

    自定义CustomKeyboardView, 继承自KeyboardView,实现自定义键盘绘制; 创建KeyboardManager, 用于处理自定义键盘的显示以及和输入UI的交互 自定义CustomKeyboard...自定义CustomKeyboardView KeyboardView 是承载不同的keyboard并绘制keyboard, 是键盘布局的绘制板, 并与系统交互。...考察KeyboardView的源码,发现其UI样式都是private类型,这就需要通过反射的方式获取特定的UI属性,并重新进行赋值,同时重载onDraw()方法,在onDraw()重新绘制。...处理系统键盘和自定义键盘之间的切换关系; 处理键盘区域其他自定义view的显示,比如需要让键盘自动搜索功能时,可在manager中进行相关处理 以绑定EditText为例: public void bindToEditor...以上就是本文的全部内容,希望对大家的学习有所帮助。

    8.9K31

    开发-车机应用实现仪表盘高级UI

    引言在车机应用开发,本文介绍如何在平台上实现一个自定义的仪表盘视图,包括设计、实现和集成协议数据(不提供code)。...仪表盘视图通过自定义View实现,图形处理和动画效果。技术实现 自定义仪表盘CustomSpeedometerView继承自View类,负责绘制仪表盘的背景和指针。...资源初始化:在initResources方法,加载仪表盘的背景和指针图像,根据屏幕尺寸进行缩放。图形缩放:scaleBitmap方法用于根据给定的缩放比例调整位图的大小。...绘制逻辑:onDraw方法在画布上绘制背景和指针。指针的旋转角度根据当前速度值动态计算。动态更新:setCurrentValue方法用于更新指针的当前值,触发视图重绘。...通过地址访问和下载GitHub - jienian/MiniPanApp: 1.编写仪表盘和速度盘2.根据车速显示对应的数字图像结语自定义仪表盘视图的开发增强了车机应用的视觉效果,通过本文的介绍,开发者可以掌握在平台上实现自定义高级

    24120

    Android开发之如何自定义数字键盘详解

    ,只需要继承该类并实现该监听接口即可,当然我这里并没有实现接口,我单独创建了一个工具类,用于将自定义键盘View和EditText关联,并设置接口监听,这些稍后介绍到再说,我们最主要关注的就是onDraw...当然,我们也可以不做任何实现,它默认的有一种绘制。...{//过滤指定某个键自定义绘制 } } } } } 在上面的onDraw方法,我们通过this.keyboard(即java的getKeyboard方法,是KeyboardView 的方法...if (key.codes[0] == -111) {//过滤指定某个键自定义绘制 //绘制后,原来xml的keyLabel以及keyIcon会被覆盖,如需显示文字 //需要自己重新绘制,要后绘制文字...除此之外,我们创建一个函数attachTo(EditText)将EditText与我们自定义的键盘绑定 fun attachTo(editText: EditText) { //如果editText与上次设置的是同一个对象

    3K21

    Android自定义TextView实现文字图片居中显示的方法

    最近有个需求是这样的,人民币的符号“¥”因为手机系统的不一致导致符号不是完全一样,所以用美工的给的图片代替,考虑到用的地方比较多,所以想着写一个继承于线性布局的组合控件,后来一想,不是有TextView...吗,这个自带图片的控件,后来写了个demo,因为我是用的MatchParent,导致问题出现,人民币符号不是和文字一样的居中,因此才有了这篇博文,让我们来自定义TextView吧,这个场景用的比较多。...,最后restore还原到上个画布,Right同理。...那这样,咱基本上就明白原理,TextView的四个方向都是通过Canvas的translate来绘制到文字的上下左右了,那咱们就只改这个scrollX 和 scrollY就可以实现咱的需求了吧。...以上这篇Android自定义TextView实现文字图片居中显示的方法就是小编分享给大家的全部内容了,希望能给大家一个参考。

    2.2K30

    Android自定义控件的步骤

    学习初衷:在工作实际开发过程,原有的控件已不能满足实际的功能需求,而且有些应用还需要一些独特的展示效果,这时就需要自定义控件来定制控件去满足我们的需求了。...必须传给父类,好让父类知道具体要绘制的参数 super(context,attrs); } 步骤三:画界面,重写onDraw()方法 @Override protected void onDraw(...创建矩形,这时需要一个矩形的宽度与高度,viewWidth,viewHeight的值通过下面步骤得到 Rect rect=new Rect(0,0,viewWidth,viewHeight); //绘制一个矩形...,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对ZaLou.Cn的支持。...如果你想了解更多相关内容请查看下面相关链接

    50410

    Android自定义支付密码输入框,光标问题总结!

    前言 在项目中我们常常继承AppCompatEditText或EditText自定义验证码输入框来代替系统输入框,以满足UI设计需求,如: 直线形输入框 方形输入框 | image.png...image.png 本文主要分析自定义验证码输入框过程中常被忽视的光标问题及个人的一点经验总结 onDraw方法一直被调用 我们在onDraw方法添加Log日志,发现onDraw方法每间隔500ms...左右被调用一次 image.png 此处先给出解决办法: *当我们继承EditText自定义验证码输入框后,EditText自带的光标对我们来说不可见,已经没有意义,因此需要将其隐藏掉,防止onDraw...我们知道invalidate方法会触发页面重绘进而调用onDraw方法,EditText又继承TextView,在TextView源码搜索invalidate关键字然后加断点调试运行,最后将代码锁定在...Blink类的run方法每隔500ms会调用TextView的invalidateCursorPath方法 问题3:如何自定义验证码输入框光标?

    1.4K20

    高级图形程序设计: 探索创意与视觉体验的边界

    高级图形程序设计为开发人员提供了强大的工具和功能,使他们能够创建出令人惊叹的用户界面和交互式体验。本文将深入探讨高级图形程序设计的概念和技术,以及如何利用它们来推动创意和视觉体验的边界。...一、使用自定义绘图实现独特的界面效果 在高级图形程序设计自定义绘图是一项强大的技术,它允许开发人员完全掌控应用程序界面的外观和行为。...下面是一个简单的示例代码,演示了如何使用OpenGL ES在应用程序渲染一个立方体: public class CubeRenderer implements GLSurfaceView.Renderer...Cube类,我们可以在应用程序绘制一个简单的立方体。...总结 高级图形程序设计为开发人员提供了强大的工具和技术,使他们能够在移动应用程序创建出令人惊叹的用户界面和视觉效果。

    20020

    Android 自定义控件 自定义 View 入门必备

    自定义 View 在实际使用的过程,我们经常会接到这样一些需求,比如环形计步器,柱状图表,圆形头像等等,这时我们通常的思路是去Google 一下,看看 github 上是否有我们需要的这些控件,但是如果网上收不到这样的控件呢...---- 接下来让我们开启自定义控件之路 关于自定义控件,一般辉遵循一下几个套路 首先重写 onMeasure() 方法 其次重写 onDraw() 方法 总所周知 onMeasure() 方法是用来重新测量...所以现在重写 onDraw() 方法,在 onDraw() 方法  我们通过 canvas (的一个绘图类对象进行图形的绘制) @Override protected void onDraw...(Canvas canvas) { // 调用父View的onDraw函数,因为View这个类帮我们实现了一些 // 基本的而绘制功能,比如绘制背景颜色、背景图片等...super.onDraw(canvas); int r = getMeasuredWidth() / 2;//也可以是getMeasuredHeight()/2,本例我们已经将宽高设置相等了

    75650

    用 Java 做个“你画手机猜”的小游戏

    在这个文章,我们将尝试通过 PyTorch 预训练模型在在平台构建一个涂鸦绘画的应用。由于总代码量会比较多,我们这次会挑重点把最关键的代码完成。你可以后续参考我们完整的项目进行构建。...3.2 第二步: 应对绘画动作 在设备上,你可以自定义的触摸事件响应来应对用户的各种触控操作。...这个方法是用来在用户绘制完后对结果进行推理。在 之后的几步, 我们会讲解它的具体实现。...我们同样需要重写 onDraw 方法来展示用户绘制的图像: 如上面代码所示,你可以添加一个 @Override protected void onDraw(Canvas canvas) { canvas.save...现在你就掌握了全部教程内容!期待看到你创建的第一个 DoodleDraw 游戏! 最后,可以在GitHub找到本教程的完整案例代码。

    1.7K20

    常用的控件

    WebView WebView 是一个可以加载和显示网页内容的控件。它支持显示HTML内容、执行JavaScript代码,并与网页进行交互。...自定义控件可以继承已有的控件类(如 View 或 ViewGroup),然后重写绘制方法和事件处理方法。...创建自定义控件的基本步骤 继承已有控件: 创建一个类,继承自 View 或 ViewGroup。 重写绘制方法: 在 onDraw 方法定义控件的绘制逻辑。...处理事件: 在 onTouchEvent 方法处理用户的交互事件。 添加自定义属性: 在 res/values 文件夹定义自定义属性,并在控件解析这些属性。...希望这篇博客能够帮助你更好地理解和使用Android的控件,如果有任何问题或想法,欢迎在评论区讨论!

    14310

    Android开发仿bilibili刷新按钮的实现代码

    要注意的一点是,这个类中有3个构造函数,因为有部分属性需要在构造函数初始化(也为之后自定义属性做准备),所以,将第1个与第2个构造函数的super修改为this。...在,文字的绘制跟其它绘制是不同的,例如,圆角矩形和旋转图标的绘制起点是左上角,而文字则是按文字左下字为起点,也就是按基线(Baseline)来绘制,故需要得到基线起点的坐标。 ?...(degress),并编写getter和setter方法,还需要在setter方法调用invalidate(),这样才能在角度值发生变换时,让控件回调onDraw()进行图标的旋转绘制。...4、自定义属性 一个自定义控件,是不能把属性值写死在控件里的,所以我们需要自定义属性,从外界获取这些属性值。 1)属性文件编写 在attrs.xml编写如下代码: <?...ta.getDimension(属性id, 默认值) 1 2 通过TypedArray对象可以从外界到的的值会根据单位(如:dp、sp)的不同自动转换成px,但默认值的单位是一定的,为px,所以为了符合规范

    93820

    从数字滚动动画看自定义View的绘制思路

    第一次进入onDraw方法时,做了如下几件事情: 1.去获取当前正确的画笔p = getPaint();从而保证xml配置的大小颜色等有效。...第一层我们称之为J循环,J循环每次循环的内容绘制一列。 第二层循环称之为I循环,I循环负责绘制每行的每一个字符。...overLine[j]的值的意思为:0表示还没绘制到最后一行,1表示为绘制到最后一行没有进行最后的定位绘制,2表示已经进行了定位绘制。...比如本文的getText();方法去获取当前TextView的内容,就要写在外面。...绘制原理的逻辑就讲完啦,RandomTextView可以投入使用啦,自定义view并不难,只要你知道API能让你能干什么,你想干什么,你可能马上就知道你应该怎么做啦。 欢迎关注作者。

    2.7K30

    教你玩转 Android RecyclerView:深入解析 RecyclerView.ItemDecoration类(含实例讲解)

    () // 作用:在子视图上设置绘制范围,并绘制内容 // 类似平时自定义View时写onDraw()一样 // 绘制图层在ItemView以下,所以如果绘制区域与ItemView...---- 2.2 onDraw() 2.2.1 作用 通过 Canvas 对象绘制内容 2.2.2 具体使用 使用方法类似自定义View时的onDraw() 请看我写的自定义View文章:...的onDraw()绘制会先于ItemView的onDraw()绘制,所以如果在Itemdecoration的onDraw()绘制内容在ItemView边界内,就会被ItemView遮挡住。...都是绘制内容 但与onDraw()的区别是:Itemdecoration的onDrawOver()绘制 是后于 ItemView的onDraw()绘制 即不需要考虑绘制内容被ItemView遮挡的问题...- 下一篇文章我将继续结合 自定义View & RecyclerView.ItemDecoration类继续进行一些有趣的自定义View实例讲解,有兴趣可以继续关注Carson_Ho的开发笔记 --

    1.9K21

    Android自定义PasswordInputView密码输入

    欢迎来到“实现自定义密码输入控件”这一章节,PasswordInputView定义了密码输入的监听,支持直接在布局文件定义属性值、支持直接获取密码输入的长度、原始密码…… 先上图 ? ?...实现原理 1.创建一个类 ‘PasswordInputView’ ,让其继承EditText,因为我们要实现的自定义view是用来密码输入的,所以必须继承EditText。...context, AttributeSet attr) { super(context, attr); init(context, attr); } 3.在’value/attrs.xml’定义...(Canvas canvas)方法,并在其实现画边框、画内容区域(以填充模式绘制Paint.Style.FILL)、画分割线、画实心圆点(密码)。...问得好,笔者在实现过程也碰到这个问题,当时没有画内容区域,导致输入的原始内容也显示出来了(如下异常图),所以画内容区域(以填充模式绘制Paint.Style.FILL)是为了掩盖原始内容不被发现,切记必不可少

    1.2K51
    领券