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

自定义View必备知识-View绘制流程

(Canvas canvas) onDraw绘制自己,新建一个paint 在canvas上绘制自己图形 绘制children (dispatchDraw)dispatchDraw会遍历调用所有子元素...isFocused() 当前视图是否获得焦点 通常情况下有两种方法可以让视图获得焦点,即通过键盘上下左右键切换视图,以及调用requestFocus()方法。...而现在Android手机几乎都没有键盘了,因此基本上只可以使用requestFocus()这个办法来让视图获得焦点了。...而requestFocus()方法也不能保证一定可以让视图获得焦点,它会有一个布尔值返回值,如果返回true说明获得焦点成功,返回false说明获得焦点失败。...一般只有视图在focusable和focusable in touch mode同时成立情况下才能成功获取焦点,比如说EditText

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

.Net 转战 Android 4.4 日常笔记(8)--常见事件响应及实现方式

在Andrioid开发中,常见事件如下 单击事件 OnClickListener 长按事件 OnLongClickListener 滑动事件 OnTouchListenner 键盘事件 OnKeyListenner...; } 3.复用方式(这种方式适用于重复复用代码) 首先在我们MainActivity加入方法 private View.OnClickListener listener = new View.OnClickListener...listener); btn3.setOnClickListener(listener); btn4.setOnClickListener(listener); 这样我们用了更少代码获得更清晰结构...现在大力移动手指吧! 焦点事件 焦点事件跟我们JS焦点事件基本一个性质。...但是Android得到焦点和失去焦点都在同个方法内运行 随便拖一个TextBox在安卓里面叫EditText 输入事件代码 EditText editText = (EditText) findViewById

1K50

Android中视图焦点Focus详细介绍

而在触摸设备上通常默认情况下只有EditText控件才具有焦点,而我们通常会遇到一个问题就是当进入一个具有EditText界面时键盘就会自动弹出,而且有时候可能无法消失,但需求可能是进入时不弹出键盘...而这些所有的东西都是和视图焦点有关,因此本文重点就是介绍视图焦点属性和方法,get到这些技术点后你就可以完全控制和使用这些特性了。...//获取视图是否在触摸模式下获得焦点 public final boolean isFocusableInTouchMode() 因此在触摸设备下,一个视图要想获得焦点必须要setFocusable...因为默认EditText是一个成为焦点视图,这样根据规则当界面展示时就会成为一个焦点视图从而弹出键盘,这样即使对EditText调用clearFocus也因为规则导致他还是焦点视图。...这样当对EditText调用clearFocus或者对祖先视图调用reqeustFoucs时都会优先让祖先视图获得焦点

2.4K20

Android使用Activity实现简单输入对话框

这里效果可以细分为四点: 点击底部按钮之后会弹出对话框,对话框在布局底部; 对话框中有输入框EditText,可以输入内容; 对话框弹出后EditText会自动获取焦点,弹出软键盘; 软键盘会把对话框顶上去...一开始我想到是PopupWindow,但是由于里面有EditText,与软键盘交互起来很是头疼,于是改用了Activity。这样一来我们就可以像用Activity一样使用这个对话框,方便多了。...下面介绍两种方法: 3.1、使用InputMethodManager类显示软键盘 我们平时要让某个EditText获得焦点自动弹出软键盘可以这样写: InputMethodManager inputManager...获得焦点,那必须等界面绘制完毕才行。...源码我保存到了码云,需要的话可以参考:输入对话框源码 大家也可以通过本地下载:点击这里 好了,以上就是这篇文章全部内容了,希望本文内容对大家学习或者工作具有一定参考学习价值,如果有疑问大家可以留言交流

2.7K20

Android编程实现EditText弹出打开和关闭工具类

本文实例讲述了Android编程实现EditText弹出打开和关闭工具类。分享给大家供大家参考,具体如下: 需求: 使用代码实现Android输入框EditText对键盘关闭弹出实现。...代码: /** * 打开键盘 * * @param editText 操作输入框 */ public static void openKeyboard(EditText editText) { /.../设置可获得焦点 editText.setFocusable(true); editText.setFocusableInTouchMode(true); //请求获得焦点 editText.requestFocus...(INPUT_METHOD_SERVICE); inputManager.showSoftInput(editText, 0); } /** * 关闭键盘 * * @param editText 操作输入框...(), 0); } 更多关于Android相关内容感兴趣读者可查看本站专题:《Android视图View技巧总结》、《Android布局layout技巧总结》、《Android图形与图像处理技巧总结》

76341

TextView属性和方法大全

TextView作用就是在界面上显示文本。TextView直接继承了 View,是EditText、Button两个UI组件类父类,TextView与其子类类图如下图所示: ?...TextView提供了大量XML属性,这些XML属性大部分不仅可适用于TextView,而且适用于它子类(EditText、Button等)。...XML属性 相关方法 说明 android:autoLink setAutoLinkMask(int) 是否将符合指定格式文本转换为单击超链接形式 android:autoText setKeyListener...(KeyListener) 控制是否将URL、E-mail地址等连接自动转换为单击链接 android:capitalize setKeyListener(KeyListener) 控制是否将用户输入文本转换为大写字母...,设置是否当它获得焦点时自动选中所有文本 android:shadowColor setShadowLayer(float, float, float, float) 设置文本框内文本阴影颜色 android

2K50

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

特点 对比市面上EditText控件,该控件Super_EditText 特点是: 3.1 功能实用 一键删除功能 在需求中非常常见,现将其封装后更加方便使用 自定义样式程度高(比自带强大 & 方便...),不复杂却能满足一般EditText使用需求 自定义样式如下:(注:该样式设置是系统自带 API 所不具备) ?...EditTEXT焦点,即是否选中 // setDeleteIconVisible() = 根据传入是否选中 & 是否有输入来判断是否显示删除图标->>关注1 } @...previouslyFocusedRect); setDeleteIconVisible(focused && length() > 0,focused); // focused = 是否获得焦点...EditTEXT焦点,即是否选中 // setDeleteIconVisible() = 根据传入是否选中 & 是否有输入来判断是否显示删除图标->>关注1 } @

1.8K30

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

特点 对比市面上EditText控件,该控件Super_EditText 特点是: 3.1 功能实用 一键删除功能 在需求中非常常见,现将其封装后更加方便使用 自定义样式程度高(比自带强大 & 方便...),不复杂却能满足一般EditText使用需求 自定义样式如下:(注:该样式设置是系统自带 API 所不具备) 3.2 使用简单 仅需要简单xml属性配置 具体请看文章:Android自定义...EditTEXT焦点,即是否选中 // setDeleteIconVisible() = 根据传入是否选中 & 是否有输入来判断是否显示删除图标->>关注1 } @...previouslyFocusedRect); setDeleteIconVisible(focused && length() > 0,focused); // focused = 是否获得焦点...EditTEXT焦点,即是否选中 // setDeleteIconVisible() = 根据传入是否选中 & 是否有输入来判断是否显示删除图标->>关注1 } @

1.1K30

关于EditText屏蔽焦点问题,及为什么clearFocus()方法失效了?

我们有时候需求时,EditText 在不需要时候,无法点击,或者取消它默认焦点。 我们先看看通用解决方法。...android:focusable=“true”不会改变android:focusableInTouchMode,因此只在键盘状态下显示焦点,在TouchMode状态下,依旧无法显示焦点。...会覆盖子类控件而直接获得焦点 代码处 visable.setDescendantFocusability(FOCUS_AFTER_DESCENDANTS); 问题定义:比如我们有EditText...,由一个switch控制,当switch关闭时,editText可以输入,有焦点,否则无法点击,无焦点。...总结一下,也就是我们需要在父布局处添加 触控模式为true,即就是android:focusableInTouchMode="true",这样当清除焦点时候,就会将焦点赋给父布局,而不是重置到第一个EditText

1K20

Android用户界面开发概述

一个视图(View)在屏幕上占据了一块矩形区域,它负责渲染这块矩形区域(如将这块矩形区域变成其他颜色),也可以处理这块矩形区域发生事件(如用户单击事件),并且可以设置这块区域是否可见、是否可以获取焦点等...:nextFocusDown setNextFocusDownld(int) 设置焦点在该组件上,且单击向下键时获得焦点组件ID android:nextFocusLeft setNextFocusLefUd...(int) 设置焦点在该组件上,且单击向左键时获得焦点组件ID android:nextFocusRight setNextFocusRightld(int) 设置焦点在该组件上,且单击向右键时获得焦点组件...ID androidrnextFocusUp setNexlFocusUpId(int) 设置焦点在该组件上,且单击向上键时获得焦点组件ID android.onClick 为该组件单击事件绑定监听器...但由于ViewGroup是一个抽象类,因此实际使用中通常总是使用ViewGroup 子类来作为容器,例如各种布局管理器。

2.3K100

Android自定义控件EditText实现清除和抖动功能

本文实例为大家分享了Android EditText实现清除和抖动功能具体代码,供大家参考,具体内容如下 源码如下: public class ClearEditText extends EditText...DrawableRight,假如没有设置我们就使用默认图片,2是获得右边图片 顺序是左上右下(0,1,2,3,) mClearDrawable = getCompoundDrawables()[...EditText设置点击事件,所以我们用记住我们按下位置来模拟点击事件 当我们按下位置 在 EditText宽度 - * 图标到控件右边间距 - 图标的宽度 和 EditText宽度 - 图标到控件右边间距之间我们就算点击了图标...(touchable) { this.setText(""); } } } return super.onTouchEvent(event); } / * 当ClearEditText焦点发生变化时候...绘制上去 * * @param visible */ protected void setClearIconVisible(boolean visible) { Drawable right

98720

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

编辑框EditText算是Android一个基础控件了,表面上看,EditText只负责接收用户手工输入文本;实际上,要把这看似简单文本输入做得方便易用,并不是一个简单事情...可是单张静态截图无法准确体现支付密码输入框具体功能,因此我们再来看看使用该输入框完整操作流程,相关动图如下所示。 ?...由这张动图可以发现,支付密码输入框至少需要完成以下功能: 1、一开始边框是灰色获得焦点后边框变蓝色; 2、输入框一共六个方格,每个方格之间以竖线隔开; 3、每个方格只显示一个密码字符,且字符位于方格中央...对于处理密码输入EditText来说,需要实现以下几项操作: 1、把默认下划线背景替换为圆角背景,且支持在获得焦点时高亮显示; 2、屏蔽输入光标,可调用setCursorVisible方法设置为不可见...其次,对于支付密码输入框焦点获得问题,因为该输入框内部集成了EditText,所以不管是给输入框注册点击事件还是触摸事件,手势焦点都会被内部EditText所抢占,使得密码输入框反而不会响应点击和触摸事件

1.8K30

TextView

对于带有标签文本,直接使\n无法换行,只能使用 或者 超链接 插入图像,只有一个src属性 ---- 虽然和HTML标签类似,但是并不具备HTML标签全部功能。...由于本例中标签是链接,因此,需要使用LinkMovementMethod.getInstance()方法获得MovementMethod对象,该对象可以使单击浏览器时显示指定网页,如果不设置MovementMethod...由于无法直接使用文件名来引用res/drawable中图像资源,我们使用反射技术从R.drawable类中通过图像资源名称获取对应图像资源ID,实现原理就是R.drawable类中相应资源ID...虽然这些单击动作已经可以满足大部分需求了,但是如果要想在单击链接时候执行任意自定义动作,就需要学习下面的内容了。...---- 为指定文字添加背景 从上面的例子中我们可以总结出 设置字符串中某个子字符串样式(变成单击链接、设置字体等)步骤如下: 将字符串转换成SpannableString或者SpannableBuilder

1.6K20

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

由于View和ViewGroup是基类,因此很少会直接使用,偶尔用到场景,主要有如下几个: 1、页面上需要单独显示一条横线或者竖线。...需要注意是,scrollbars只能在xml中设置,而无法通过代码设置。反过来,setMovementMethod只能在代码中设置,而无法通过xml设置。...drawableLeft : 指定文本左边图形。 drawableRight : 指定文本右边图形。 drawablePadding : 指定图形与文本间距。...maxLength : 指定文本允许输入最大长度。该属性无法通过代码设置。 hint : 指定提示文本。 textColorHint : 指定提示文本颜色。...在代码中设置: setScaleType : 设置图形拉伸类型。 setImageAlpha : 设置图形透明度。 setImageBitmap : 设置图形Bitmap对象。

1.4K30

安卓开发之简单组件使用

30dip” android:paddingBottom=”40dip” android:layout_weight=”1″ android:singleLine=”true” /> 1、 直接继承View是EditText...和Button父类;其中TextViewxml属性很多具体参考手册即可; 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

91460

Android富文本开发

设置对齐方式等等; 关于富文本字数统计,由于富文本中包括文字和图片,因此图片和文字数量统计分开。...图片提供按钮操作 软键盘删除键删除图片,也可以删除文字内容 文字可以修改属性,比如加粗,对齐,下划线 根据富文本作出以下分析 使用原生控件,插入图片、文字界面不能用一个EditText来做,需要使用...同时加载图片逻辑也是暴露给外部开发者,充分解耦 关于富文本字数统计,由于富文本中包括文字和图片,因此图片和文字数量统计分开。...字符外观,这种类型修改字符外形但是不影响字符测量,会触发文本重新绘制但是不触发重新布局。...对于光标前面的字符串保留,设置给当前获得焦点EditText(此为分割出来第一个EditText) 把光标后面的字符串放在新创建EditText中(此为分割出来第二个EditText) 在第二个

8.4K20

Android开发笔记(四十三)点击事件

常用按钮点击 1、单击事件,主要用于Button和ImageButton控件,布局视图与TextView、ImageView控件用也比较多。...但不管是onClick还是onLongClick都要在松开后,才会调用相应单击或者长按函数,而且不知道按下是什么键,所以有时不能满足比较精细事件要求。...3、焦点变化事件,主要用于EditText控件。...比如屏幕上有多个EditText输入框,当用户点击某个输入框,则该输入框获得焦点;然后用户再点击另一个输入框,则原输入框失去焦点,当前输入框获得焦点;所有获得焦点与失去焦点控件,都有条件响应焦点变化事件...菜单项点击事件具体实现代码参考《Android开发笔记(六十五)多样菜单》。

1.3K30
领券