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

【Android源码解析】 自定义可清除的输入框

https://blog.csdn.net/lyhhj/article/details/47417337 今天给大家分享一下这个关于Edittext,之前用到过要求能一键清除的输入框,想了一下思路...,可以在输入框的旁边放一个小的清除图片,然后给Edittext和清除的小图片放到布局中,给布局来一个背景图片,看起来也比较美观的,然后根据edittext.getText().length来设置小图片是否可见...贴上部分代码: /** * 这里我们不能设置edittext的点击事件,所以我们可以这样做一下: * 当我们按下的位置 是在(输入框的宽度-图标的宽度-图标距离右侧的宽度)和(输入框的宽度...-图标到右侧的宽度)之间 * 也就是说我们按下的位置处于图标的附近,设置输入框 * by Hankkin at:2015年8月11日 16:45:42 * @param...,getCompoundDrawables()[3]); } /** * 根据edittext的焦点变化改变图片的显示与否,输入框里的字符串长度如果大于0,显示,否则隐藏

82910

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

android:background="" //控件的背景颜色,可以理解为填充整个控件的颜色,可以是图片哦!...//建议给要分比例的宽度或者高度写成0dp。 2. EditText 输入框,可编辑,可设置软键盘方式。继承自android.widget.TextView,在android.widget包中。...//在方法中调用给edittext赋值 edittext.setText("success"); ... ... } 3....在视图中心显示图片,并且不缩放图片 //android:scaleType="centercrop" 按比例缩放图片,使得图片长 (宽)的大于等于视图的相应维度 //android:scaleType...android:attr/progressBarStyleHorizontal"/> //指定成水平进度条后,我们还可以通过 android:max属性给进度条设置一个最大值,然后在代码中动态地更改进度条的进度

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

    Android训练课程(Android Training) - 构建你的第一个应用

    添加一个文本框 为了创建一个用户可编辑的文本区,在 .下添加一个 EditText>元素。...让输入框填满屏幕宽度 这个布局是最近的设计,这样包括EditText和Button两个小组件仅仅按需要去适应他们的内容的大小,像图表2展示的这样: 图表2.EditText和Button小组件的宽度被设置为...这个样子对于这个按钮还很好,但是对文本框就不那么好了,因为用户本可以输入一些更长一些的内容。那么比较好的情形是实用文本框填充满未使用的屏幕宽度。...这样,为了在你的布局里使EditText元素填满剩余的空间,给他一个weight等于1的值并且,让不为按钮设置任何weight。...设置宽度为0增进了布局的性能,因为使用"wrap_content"作为宽度需要系统计算得出一个基本上不相关的结果,因为weight值需要其他的宽度计算以填满整个剩余的空间。

    2.2K00

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

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

    3.7K41

    Android开发笔记(一百四十六)仿支付宝的支付密码输入框

    然而,计划赶不上变化,开发工作中总有一些现有控件无法直接实现的需求,就像支付宝的支付密码输入框,在一排方格区域内输入并显示密文密码,每个密文字符之间又有竖线分隔。...,支付密码的输入框必须实现EditText的功能。...当然,在界面展现上,需要以横排方格的形式加以显示。于是可以考虑,把支付密码的输入与显示操作分离开来,即密码输入操作仍由EditText处理,而密码显示操作则由自定义的方格布局接管。...对于处理密码输入的EditText来说,需要实现以下几项操作: 1、把默认的下划线背景替换为圆角背景,且支持在获得焦点时高亮显示; 2、屏蔽输入光标,可调用setCursorVisible方法设置为不可见...,队列长度为6; 2、每项密码文本控件都是一个TextView,文字居中对齐; 3、往布局上添加TextView队列时,在相邻的TextView之间要添加一条竖线,也就是宽度为1的灰色View; 4、依据转换规则

    1.9K30

    Android开发笔记(三十六)展示类控件

    如果填充图片显然不够经济,最简单的做法,就是在xml布局中增加一个View控件,高度或宽度设置为1dp,背景颜色设置为线条颜色,这样便实现了单独显示线条的需求。...EditText EditText是文本输入框,与输入有关的属性说明如下: 在XML布局文件中指定: inputType : 指定输入的文本类型。...在代码中设置: setInputType : 设置输入的文本类型。...setHintTextColor : 设置提示文本的颜色。 在录入用户信息时(比如输入姓名、密码等等),EditText输入回车键,常常不要换行而是让光标直接跳到下一个编辑框。...background : 指定图形背景。注意背景图不按比例拉伸,其实背景默认以fitXY方式拉伸。 在代码中设置: setScaleType : 设置图形的拉伸类型。

    1.5K30

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

    绘制图像相关XML属性 绘图设置 : XML属性可以指定在TextView文本的 左, 右, 上, 下, 开始, 结尾 处设置图片, 还可以设置文本 与图片之间的间距; -- 在文本框四周绘制图片XML...属性 :  在文本框左边绘制指定图像 :android:drawableLeft; 在文本框右边绘制指定图像 :android:drawableRight; 在文本框上边绘制指定图像 :android...图像, 可以为该Drawable指定背景颜色,边框颜色,边框宽度,以及边框角度,颜色渐变等效果; ....-- 设置边框的宽度和颜色 --> <stroke android:width="10px" android:color="#F0F"/>...-- android:stretchColumns 属性表示 第一列允许被拉伸, 注意索引从0开始 android:hint 属性表示Edittext没有输入之前显示的内容

    1.7K30

    安卓入门-第三章-安卓常用控件的使用方式

    现在重新运行一下程序,EditText就已经在界面上显示出来了,并且我们是可以在里面输入内容的  细心的你平时应该会留意到,一些做得比较人性化的软件会在输入框里显示一些提示性的文字,然后一旦用户输入了任何内容...重新运行程序,在EditText中输入一段内容,然后点击按钮,效果如下图所示。 ?...源路径是可以通过活动中的方法修改的,那么一来可能就会导致改变显示的图片  ImageView是用于在界面上展示图片的一个控件,它可以让我们的程序界面变得更加丰富多彩。...我们还可以在程序中通过代码动态地更改ImageView中的图片,然后修改MainActivity的代码,如下所示: public class MainActivity extends AppCompatActivity...android:attr/progressBarStyleHorizontal" android:max="100"  指定成水平进度条后,我们还可以通过android:max 属性给进度条设置一个最大值,然后在代码中动态地更改进度条的进度

    1.9K20

    android 自定义登陆对话框基类封装,且随着软键盘的弹起自动移动位置

    像对话框这种常用的组件,用过一次最好做个封装。再次用到时就很简单啦。直接拿过来复用即可。...以下是工作中用到的管理员登录框,由于是双屏异显,在后屏弹出的对话框,没法调用系统软键盘,于是自己实现了个系统软件盘。 但一弹出来软键盘,对话框就被该住了!这怎么破?方法是有的。...就是本文介绍的,随着软键盘的弹起自动移动位置的对话框。 ? 先封装实现个baseDialog基础类,把通用的操作封装一下。...scale + 0.5f); Log.e(TAG,"dp:"+dp); } @Override View getBindingRoot() { //更改...Dialog的像素密度 Utils.setDensity(App.getContext(),context); //使背景变暗 // WindowManager.LayoutParams

    72510

    Android开发之输入框EditText介绍

    这篇文章主要为大家详细介绍了Android布局之输入框EditText设计,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 现在先简单介绍一下技术点: 1.如何使用圆角输入框和按钮背景 2.如何实现...“手机号”、“密码”后面的竖线 3.如何嵌套输入框的布局 4.如何监听输入框的输入事件及删除按钮的动态显示隐藏 1.如何使用圆角输入框和按钮背景 安卓为开发者准备了shape这个xml标签,用于自定义一些形状...那么我就来定义一个白色的输入框背景。代码如下: <!...drawable/shape_wihte_frame" 2.如何实现“手机号”、“密码”后面的竖线 这个其实很简单,只需书写一个竖线即可,宽度为1dp或者1px(或你认为更合适的数值)。...思想很简单,就是监听EditText的输入事件,之后如果输入长度大于0就显示后面的删除按钮,如果=0就隐藏删除按键,点击删除按钮就清空输入框。

    2.1K10

    Android常用对话框大全——Dialog「建议收藏」

    今天就来谈谈开发中经常用的到的一个控件——Dialog,对话框一般我们就用来提示一些信息给用户, 让用户自主选择,或者在一些操作不可逆的情况下我们提示用户是否继续操作, 下面就让我们一起来学习吧。...所以可以看出对话框使用了一个建造者模式在调用函数的时候就可以一直直点点点链式调用。...中我就放置了一个EditText;在这里好多人在找自己布局中的控件时候经常报NullpointException,原因也很简单就是没有使用加载的布局.findViewbyId()。...六:完全自定义的对话框 上面我们说了可以通过调用.setView(view)方法,自定义其显示的内容;但是你会觉得这远远不够我还想把他的标题或者底部按钮给改了,那么就需要来个完全自定义了,如下:...Dialog放置在屏幕底部lp.gravity = Gravity.BOTTOM;并设置他的宽度为屏幕的90%lp.width = (int) (ScreenSizeUtils.getInstance(

    4.2K30

    Android富文本开发

    ForegroundColorSpan,BackgroundColorSpan,UnderlineSpan,StrikethrougnSpan 字符大小布局,这种类型Span会更改文本的大小和布局,会触发文本的重新测量绘制...而此时的bitmap已经压缩减小很多了,所以加载到内存中并不会导致OOM。...使用LayoutTransition类在一个ViewGroup中对布局更改进行动画处理。...这里就不贴分析源码的思路呢! 14.点击图片可以查看大图 编辑状态时,由于图片有空能比较大,在显示在富文本的时候,会裁剪局中显示,也就是图片会显示不全。...="true" (效果:软键盘不弹出,光标不显示,其他输入框也不获取焦点,ps非直接父布局没有效果) 在父布局最顶部添加一个高度为0的EditText,抢了焦点但不展示; 软键盘遮挡界面的问题 当界面中有输入框

    8.5K20

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

    1.前言 整理学习”Android动画效果集合开源APP(BaseAnimation)程序源码“中的通讯录效果。...>笔记20 | 学习整理开源APP(BaseAnimation)程序源码“中的通讯录效果(一) ---- 3.2 通讯录界面ListView的数据填充 加载联系人的方法容易理解,排序》加载》处理 >笔记...textchange的监听,然后进行匹配>筛选>排序>加载到联系人列表中。...public void afterTextChanged(Editable s) { } }); /** * 根据输入框中的值来过滤数据并更新...* 当我们按下的位置 在 EditText的宽度 - 图标到控件右边的间距 - 图标的宽度 和 * EditText的宽度 - 图标到控件右边的间距之间我们就算点击了图标,竖直方向没有考虑

    67440

    安卓逆向系列教程 4.2 分析锁机软件

    首先这个软件的截图是这样,进入这个界面之后,除非退出模拟器,否则没办法回到桌面。 ? 上面那个“时空先生”是个按钮,直接按下会提示“密码错了”。我们以这个词为关键词来搜索: ?...m@0x7f040007" id="0x7f040007" /> 然后我们在反编译的 Java 代码里面搜索这个值: paramAnonymous2View = (TextView)Floatw.access...// ... } 如果val$etext的内容等于i的字符串值,那么就会关闭服务并退出。...的十六进制为0x7f060001,经查找可知它是个输入框: EditText android:textColor="#ff000000" android:id="@id/_?...接下来的任务就是找到它。其实也不难,我们可以看到这个编辑框的高度很小,但是还有宽度,我们在按钮左下方的大致位置上点一点,它就出来了。 ?

    96140

    TextInputLayout的使用与实现

    gradle配置文件 在对应的Layout文件中使用TextInputLayout将EditText控件包裹,并且在EditText中设置hint属性即可,在这个父ViewGroup中,只能有一个EditText...Layout配置文件 TextInputLayout效果 在两个输入框切换点击切换的时候,EditText中的文本会有动画的方式飞向左上角。 ?...TextInputLayout效果 TextInputLayout动画实现原理 原本以为在点击输入框的时候,会是在EditText的Focus改变的时候,开始执行动画,结果发现是在整个TextInputLayout...的背景色Drawable发生改变的时候,才会开始执行动画 在refreshDrawableState函数中,会开始执行相应的动画,而该函数是在更新View的Selector背景的时候会被调用 ?...updateLableVisibility 在expandHint函数中,会将当前的动画停掉,在判断是否有动画,如果需要有动画的话,则开始从1-0的动画 ?

    1.2K40

    Android 带伸缩动画的布局

    由于白色的我放上去你也看不见,所以你就用黑色的先顶着,然后就是背景样式 shape_search_bg.xml <?xml version="1.0" encoding="utf-8"?...manager.getDefaultDisplay().getMetrics(metrics); width = metrics.widthPixels; //获取屏幕的宽度...AutoTransition来完成,在点击搜索图标的时候,显示输入框的关闭按钮,然后通过LinearLayout.LayoutParams来设置展开布局的宽度,因为我是横向,所以我获取屏幕的宽度为px,...再转换成dp,然后减去40其实是左右20的边距,同时在展开的时候增加了左右的内边距,最后放入到beginDelayedTransition方法中,进行实例化,再设置动画时间,最后交给TransitionManager...进行处理就达到了以上的效果,至于关闭的业务就是和展开是相反的业务处理,并且多了输入法的关闭和输入框的清空。

    1.7K60

    超全的Android组件及UI框架

    findViewById(id) 找到该组件 android:background    为组件设置一个背景图片或者背景色 android:layout_width    布局的宽度,通常不直接写数字值...android:layout_centerVertical    在父容器中垂直居中 android:layout_centerInParent    在父容器的居中位置 各个属性示意图如下:...ImageView 图像视图 3.1 常用属性 ImageView 有 2中属性,分为为: src, backgroud,他们之间的区别是: background 通常指的都是 背景, 而 src 指的是...而使用 background 填入图片,则是会根据 ImageView 给定的宽度来进行 拉伸  设置缩小放大的大小 3.2 常用方法 @Override public void onClick...我们可以将 Button 的 android:background 属性设置为该 drawable 资源即可轻松实现按下 按钮时不同的按钮颜色或背景 下表列出了可以设置的属性 在 res/drawable

    6.2K30

    【谷歌官方文档】1.1 建立第一个APP

    android:hint 当文本框为空的时候,会默认显示这个字符串。对于字符串 "@string/edit_message" 的值所引用的资源应该定义在单独的文件里,而不是直接使用字符串。...图 2 EditText 和 Button 窗体小组件使用 "wrap_content" 作为宽度属性的值。 这样设置对按钮来说很合适,但是对于文本框来说就不太好了,因为用户可能输入更长的文本内容。...让输入框充满整个屏幕的宽度 为让 EditText 充满剩余空间,做如下操作: 在 content_my.xml 文件里,设置 [EditText>] 的 layout_weight 属性值为 1。...... /> 为了提升布局的效率,在设置权重时,应该把 EditText 的宽度设为 0dp。...如果设置宽度为 "wrap_content",系统需要计算这个部件所占用的宽度;而此时的 EditText 因为设置了权重,所以会占据剩余空间;所以,最终导致的结果是:EditText 的宽度成了不起作用的属性

    2.4K20

    三、我的登录 栏制作《仿淘票票系统前后端完全制作(除支付外)》

    随后制作登录信息内容: 1.2 登录信息制作 登录信息可以明显的知道,是一个行包裹,每行信息为一个文本和一个输入框,那么此时创建一个行命名为登录信息,背景色透明,高度包裹,水平对齐为居中:...一个用于验证码内容一个是号码内容,需要注意,设置垂直对齐为底部,为了方便其内容高度不一致导致的对齐问题: 接着创建一个输入框和一个文本: 想要使输入框有以上下划线效果只需要设置其父容器只显示下边距即可...1.3 注册信息制作 注册信息制作很简单,直接赋值一个更改对应的文本即可: 那如何使其调换呢?...,注册块消失即可: 记得设置完事件后要点击眼睛使其默认隐藏: 二、我的页面制作 2.1 我的页面与登录注册页逻辑 此时在什么时候才显示我的页面呢?...此时新建一个数字变量命名为UID,默认为0: 接着给予一个 if 判断,将注册和登录块都放到这个 if 容器之下: 接着给这个 if 容器一个条件,当 UID 等于 0 则显示此内容

    92430
    领券