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

高仿Android「填空题」控件:手撸一个炫酷的View动效!

下面就是一个比较特别的控件,一个可填空的控件。要求可以和普通TextView一样展示普通的文字,同时又包含可以编辑的部分,类似EditText。如下: ?...但是,他们都存在一些问题,比如 1.非嵌入式的输入,需要在外部提供一个可输入的EditText 2.虽然是嵌入式的输入,但是可编辑文字必须要固定长度,不能根据文字长短动态变化 总而言之,就是体验还是不够好...而在绘制文字的过程中,我们可以将可编辑文字段的坐标信息记录下来,那么在点击的时候,就可以判断有没有触摸碰撞,如果有,那么就可以弹出输入法。...说明:这里的index,指的是文字在可编辑字段中的位置,也就是光标的位置 光标起始位置的y坐标,就是被触摸的可编辑字段的y坐标。...所以,了解实现的思想和可借助工具方法即可,没必要太过较真。

1.7K30

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

前言 Android开发中,EditText的使用 非常常见 本文将手把手教你做一款 附带一键删除功能 & 自定义样式丰富的 SuperEditText控件,希望你们会喜欢。 ?...特点 对比市面上EditText控件,该控件Super_EditText 的特点是: 3.1 功能实用 一键删除功能 在需求中非常常见,现将其封装后更加方便使用 可自定义样式程度高(比自带的强大 & 方便...),不复杂却能满足一般的EditText使用需求 可自定义样式如下:(注:该样式的设置是系统自带的 API 所不具备的) ?...lineColor_click : lineColor_unclick; setTextColor(color); invalidate(); } /** * 步骤4:绘制分割线...super.onDraw(canvas); mPaint.setColor(color); setTextColor(color); // 绘制分割线

1.9K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Android自定义EditText:手把手教你做一款智能EditText(一键删除、自定义样式)

    前言 Android开发中,EditText的使用 非常常见 本文将手把手教你做一款 附带一键删除功能 & 自定义样式丰富的 SuperEditText控件,希望你们会喜欢。...特点 对比市面上EditText控件,该控件Super_EditText 的特点是: 3.1 功能实用 一键删除功能 在需求中非常常见,现将其封装后更加方便使用 可自定义样式程度高(比自带的强大 & 方便...),不复杂却能满足一般的EditText使用需求 可自定义样式如下:(注:该样式的设置是系统自带的 API 所不具备的) 3.2 使用简单 仅需要简单的xml属性配置 具体请看文章:Android自定义...lineColor_click : lineColor_unclick; setTextColor(color); invalidate(); } /** * 步骤4:绘制分割线...super.onDraw(canvas); mPaint.setColor(color); setTextColor(color); // 绘制分割线

    1.3K30

    笔记22 | 学习整理开源APP(BaseAnimation)程序源码“中的通讯录效果(三)

    1.前言 整理学习”Android动画效果集合开源APP(BaseAnimation)程序源码“中的通讯录效果。...---- 3.目录 3.1 A-Z的字母索引 3.2 联系人界面ListView的数据填充 3.3 联系人的搜索 3.1 A-Z的字母索引 通过自定义一个View界面,绘制一个A-Z竖向排列的布局,通过触摸事件监听...textchange的监听,然后进行匹配>筛选>排序>加载到联系人列表中。...* 当我们按下的位置 在 EditText的宽度 - 图标到控件右边的间距 - 图标的宽度 和 * EditText的宽度 - 图标到控件右边的间距之间我们就算点击了图标,竖直方向没有考虑...,调用setCompoundDrawables为EditText绘制上去 * @param visible */ protected void setClearIconVisible

    67440

    Gizmos菜单_gi clamp

    要更改网格的颜色,去团结 > 首选项 > 颜色,改变网格设置。 此选项仅在“场景”视图Gizmos菜单中可用; 您不能在游戏视图Gizmos菜单中启用它。 参见显示网格,下面,图像和更多信息。...一些小玩意儿是被动的图形叠加,仅供参考所示(如光方向小玩意儿,它显示光的方向)。...最近更改的项目在列表的顶部。 Gizmos菜单,显示一些项目分配的自定义图标和一些最近修改的项目 该图标栏显示或隐藏列出的各个组件类型的图标。点击下的小图标,图标栏切换该图标的可视性。...如果图标在菜单中为全色,则会在“场景”视图中显示; 如果它在菜单中显示为灰色,则它在“场景”视图中不可见。任何具有自定义图标的脚本都会显示一个小的下拉菜单箭头。...你自己的脚本可以绘制符合自己目的的自定义Gizmos; 实施OnDrawGizmos或OnDrawGizmosSelected做到这一点。取消选中此列中的复选框可关闭这些Gizmos。

    3.7K10

    Android 通过 xml 和 Java 两种方式调整 EditText 光标样式

    和尚我有个小需求是根据主题配色更改 EditText 中输入框光标的颜色,网上查了一些资料,大部分都是直接用的 xml 方式在做调整,但是和尚我需要的是在 Java 代码中动态调整光标颜色。...虽然是一个很简单的东西,但是和尚我在测试中还是遇到了不少的小问题,现在简单整理一下,希望对于遇到相同问题的朋友有所帮助。...,通过更改 xml 方式调整光标颜色,其中 android:textCursorDrawable 属性来设置 shape 光标样式,shape 中 size 设置光标宽度,solid 设置光标颜色; ?...设置一个 EditText,通过 Java 方式调整光标颜色,此效果为和尚我期待的效果,将上个步骤中 Tips 方式调整即可; ?...xml 中默认设置一个 android:textCursorDrawable="@drawable/editext_cursor" 样式,之后在 Java 代码动态修改光标颜色和宽度。

    3.7K41

    Material Design 进阶之二-使用TextInputLayout的登陆界面

    子元素必须是一个EditText 元素。...---- 验证输入 我使用维基百科建议的 有关电子邮件有效性的指南编写了以下正则表达式。 /^[a-zA-Z0-9#_~!$&'()*+,;=:....setError 设置将显示在下方的红色错误消息EditText。如果传递的参数是null,则清除错误消息。它还将整个EditText小部件的颜色更改为红色。...在设置错误消息之前启用此功能setError 意味着在显示错误时此布局不会更改大小。您应该结合这两种方法进行一些测试,以便您实际看到 我在说什么。...每个小部件的颜色都直接从style.xml文件中指定的主题颜色中绘制 。只需打开它并将colorAccent项目添加到活动主题即可更改表单的颜色方案。

    1.4K20

    Android富文本开发

    图片提供按钮操作 软键盘删除键可删除图片,也可以删除文字内容 文字可以修改属性,比如加粗,对齐,下划线 根据富文本作出以下分析 使用原生控件,可插入图片、文字界面不能用一个EditText来做,需要使用...LinearLayout添加不同的控件,图片部分用ImageView,界面可滑动最外层使用ScrollView。...删除的时候,根据光标的位置,如果光标遇到是图片,则可以用光标删除图片;如果光标遇到是文字,则可以用光标删除文字。...ForegroundColorSpan,BackgroundColorSpan,UnderlineSpan,StrikethrougnSpan 字符大小布局,这种类型Span会更改文本的大小和布局,会触发文本的重新测量绘制...使用LayoutTransition类在一个ViewGroup中对布局更改进行动画处理。

    8.5K20

    【Android 应用开发】Android UI 设计之 TextView EditText 组件属性方法最详细解析

    绘制图像相关XML属性 绘图设置 : XML属性可以指定在TextView文本的 左, 右, 上, 下, 开始, 结尾 处设置图片, 还可以设置文本 与图片之间的间距; -- 在文本框四周绘制图片XML...属性 :  在文本框左边绘制指定图像 :android:drawableLeft; 在文本框右边绘制指定图像 :android:drawableRight; 在文本框上边绘制指定图像 :android...设置颜色 大小 阴影 设置文本颜色 :  -- XML属性 :android:textColor, 值是颜色代码, 也可以是资源文件中的颜色; -- 方法 : setTextColor()...." 正常 " + " 变小, 绿色 ")); 效果 :  总结 在Android中显示...EditText属性详解 共享属性 : EditText 与 TextView共享大部分XML属性, 但是EditText可以接受用户输入; 类型定义属性 : EditText最重要的属性是android

    1.7K30

    Jetpack-Compose 学习笔记(五)—— State 状态是个啥?又是新概念?

    3、一个简单例子 先来看看效果: 其中有两个控件,一个是 Text,用于显示输入的内容;另一个是 TextField,相当于 View 体系中的 EditText。...如果是在 View 体系中,一般实现的方法是在 EditText 添加一个 TextWatcher 类用于监听输入事件,然后在 onTextChanged 方法中对 TextView 设置输入的内容即可...缺点是,具有内部状态的可组合项复用性往往不高,也更难以测试。 无状态可组合项就是指无法直接更改任何状态的 Composable 组件。因为不包含任何状态数据,所以它更容易测试,复用性也更高。...自治”的; 可共享: 提升后的状态可以与多个可组合项共享; 可拦截: 无状态可组合项的调用方可以在更改状态之前决定忽略或者修改事件; 解耦: 无状态可组合项的状态可以存储在任何位置,如 ViewModel...6.2 Parcelize 最简单的解决方法就是在对象上添加 @Parcelize 注解,对象就可以转化为可打包状态且可以捆绑。还记得 Java 中的 Serializable 接口吗?

    2.3K30

    安卓开发之简单组件使用

    30dip” android:paddingBottom=”40dip” android:layout_weight=”1″ android:singleLine=”true” /> 1、 直接继承View是EditText...和Button的父类;其中TextView的xml属性很多具体参考手册即可; 2、 由于TextView中只用于显示文字,如果图文混合可以绘制一个drawable对象即可 xml属性对照(部分) android...:autoLink是否将符合指定格式的文本转换可单击的超链接形式(web、email、phone、map、all、none) android:cursorVisible设置文本框中的光标是否可见 android...:drawableTop在左侧绘制一个图像 android:editable是否可以编辑 android:ellipsize超过框长度如何处理(五个属性) android:gravity设置文本框内文本对齐方式...设置文本框不够显示全部内容是否允许水平滚动 android:selectAllOnFocus:文本内容可选择,一般配置hint使用 android:single设置文本是否是单行模式 二、Button组件ImageButton(按钮) 三、EditText

    93360

    Jetpack DragAndDrop 库——拖放操作如此轻松!

    虽然平台本身支持从 EditText 中拖动文本,但我们强烈建议支持用户从应用的其他组件中拖动任何图片、文件和文本。同样重要的是,我们也鼓励支持用户将数据拖放至您的应用。...DragStartHelper DragStartHelper 是 Jetpack 核心库中的工具类,通常用于检测开始拖动的手势,例如长按或鼠标的点击拖动操作。.../* Copyright 2021 Google LLC.SPDX-License-Identifier: Apache-2.0 */ // 将视图设置为可拖动以共享文件。...DropHelper.Options.Builder() // 要确保正确高亮放置目标,所有放置目标视图层级内的 EditText 元素 // 必须通过该方法添加到调用中...否则目标视图内的 EditText 而不是目标视图 // 将在拖放操作中获得焦点。

    1.4K20

    强大的提示控件TextInputLayout使用以及源码分析

    说明在源码中必定有添加这个提示的逻辑,这里我们后面在讨论,先继续往下看 mCollapsingTextHelper.setTextSizeInterpolator(AnimationUtils.FAST_OUT_SLOW_IN_INTERPOLATOR...errorEnabled = a.getBoolean(R.styleable.TextInputLayout_errorEnabled, false); a.recycle(); 从TypedArray中取出一些用户给...设置文本变化的监听,在文本改变之前,正在改变的时候都可以做相应的逻辑处理,往下看有更改EditText的Margin的方法 private LayoutParams updateEditTextMargin...mCurrentBounds = new RectF(); } 构造函数中会把view传进来,而这个view就是TextInputLayout,同时new了一个TextPaint来进行文本的绘制...,则调用canvas的drawBitmap方法,否则canvas 的drawText方法,绘制文字 if (drawTexture) { // If we should

    1.8K50

    前端性能优化学习 02 Web 性能指标「建议收藏」

    所以在讨论性能的时候,精确的、可量化的指标很重要。 但是,一个度量标准是基于客观标准并且可以定量地度量的,所以一个指标的好坏并不一定意味着是有用的。...为了能衡量用户视觉体验,Web 标准中定义了一些性能指标,这些性能指标被各大浏览器标准化实现,例如 First paint(首次绘制)和 First contentful paint(首次内容绘制)。...众所周知,人眼具有视觉暂留特性,就是光对视网膜所产生的视觉,在光停止作用后,仍能保留一段时间。...以下是一些示例: 在以上两个时间轴中,最大的元素随内容加载而变化。在第一个示例中,新内容被添加到 DOM 中,并且更改了最大的元素。在第二个示例中,布局发生更改,以前最大的内容从视口中删除。...首次输入延迟通常发生在第一次内容绘制(FCP)和可持续交互时间(TTI)之间,因为页面已经呈现了一些内容,但还不能可靠地交互。

    1.7K21

    『安卓』安卓开发基础--基本控件

    EditText 输入框,可编辑,可设置软键盘方式。继承自android.widget.TextView,在android.widget包中。...//在方法中调用给edittext赋值 edittext.setText("success"); ... ... } 3....显示在视图的下部分位置 //android:scaleType="fitstart" 把图片按比例扩大/缩小到视图的最小边,显示在视图的上部分位置 //android:scaleType="matrix" 用矩阵来绘制...显示在视图的下部分位置 //android:scaleType="fitstart" 把图片按比例扩大/缩小到视图的最小边,显示在视图的上部分位置 //android:scaleType="matrix" 用矩阵来绘制...android:attr/progressBarStyleHorizontal"/> //指定成水平进度条后,我们还可以通过 android:max属性给进度条设置一个最大值,然后在代码中动态地更改进度条的进度

    7K20

    可视化工具solo show-----Processing Prefuse show

    在这种情况下,就凸显了 setup 和 draw 这两个函数的重要性。   setup() 函数用于初始化,由 Processing 运行时执行一次。...默认的绘制速度是每秒 60 个画面,但是您也可以通过调用 frameRate() 函数来更改这个速度。   此外,还可以使用 noLoop() 和 draw() 来控制在何时绘制画面。...line() 函数接受四个参数,代表的是要在其间绘制线条的点。rect ()函数可绘制一个矩形,并且前两个点定义位置,而后面两个点则分别定义宽度和高度。...Processing支持对于键盘和鼠标的事件监听,如keyPressed()、keyRealeased()、mousePressed()、mouseMoved()等。   ...,其更侧重艺术效果,如3D效果、投光角度等; Prefuse灵活度更高,API粒度小,操控方便,而且内置力导向布局、树状布局、网格布局等多种布局方式。

    1.5K60

    教你绘制轻拟物风格指南针图标

    这次我们要绘制一个轻拟物风格的“星空指南针”图标。就是下图这样啦: 拟物图标是UI设计中除了线性图标,面性图标外非常重要的图标分支类型。而拟物图标在发展过程中又衍生出来了现在非常受欢迎的轻拟物图标。...轻拟物图标对拟物图标的细节,材质进行简化,保留了拟物化图标的光影效果和些许质感,强调空间,阴影等内容的展现。也代表了当今图标的进化趋势。值得各位UI设计师精进学习。...其实你只要细心,这些都是基础操作,当你用心去调整渐变,高光效果和阴影,最终做出成品后,相信会特别有成就感,加油! 本次的案例我们采用即时设计平台来完成,大家也可以熟悉一下相关的操作。

    69810
    领券