来源:蜘蛛抓取(WebSpider)
时间:2016-03-01 06:52
标签:
edittext光标移到最后
Android EditText中字符大小与光标位置 - 凌寒00 - 博客园
Powered by:
模板提供:
& & & 最近的工作需要自己写一个数字键盘用于数字的输入,采用的方法是自定义一个 &Dialog,然后将数字显示在EditText中。在处理过程中遇到遇到一个问题,在EditText的点击事件中屏蔽系统键盘并弹出自定义的Dialog,无法获取用户选中的字符即Selection,造成的问题现象是用户不能选中中间某个位置修改输入值。
为了解决这一问题,需要在EditText的点击事件中获取Selection。
解决方法是:1、在EditText点击事件中获取用户点击位置,主要取其中的touchX值(这里主要讨论文字方向为横排的情况);
2、获取EditText的内边距paddingLeft值(包含左内边距和右内边距,此处仅讨论左对齐情况);
3、获取文字大小textSize(此值得大小与XML文件中设置的大小和单位有关系,最好使用sp。使用getTextSize方法得到的值是已经经过系统字体大小加权后的值,但不是实际显示的字体大小,实际字体大小应该通过此值乘以textScaleX得到。默认情况下得到的单位为px,其他情况可以使用getTextSize重载的另一个方法,根据单位返回相应的值);
4、获取EditText的textScaleX(这个值用于计算字体显示的实际大小);
获取以上值之后就可以来计算字符的实际大小。这里说明一下:汉字、数字、大写字母、小写字母显示大小是不同的,其中汉字大小为textSize*textScaleX,数字大小为textSize*textScaleX/2,字母的大小与具体字母有关。此处仅使用数字来讨论。
数字大小计算公式:numSize =&textSize*textScaleX/2*1.1;//此处乘以1.1的作用是加上数字之间的间隔距离,通过实际测量计算,字符之间间隔是字符大小的0.1倍
光标位置计算: selection = (int)((touchX -&paddingLeft)/(numSize&));//此处直接取整,可将光标定位到第一个字符之前
另外应检查selection 是否超出EditText中实际字符长度或小于0,并进行相应处理。
阅读(...) 评论()【已解决】EditText设置多行的时候,光标在首行 &
【已解决】EditText设置多行的时候,光标在首行
【已解决】EditText设置多行的时候,光标在首行
问题描述:
,当你设置一个的高度(如,150dp),或者时,默认的位置是居中显示的,如何设置成在第一行显示呢?
原因分析:
默认 组件的 android:gravity 这个属性的值为 center
解决方法:
设置属性:android:gravity="top"
Linux系统与内核学习群:
WP建站技术学习交流群:
魔豆的Linux内核之路
优秀工程师当看优秀书籍
赞助商广告<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
您的访问请求被拒绝 403 Forbidden - ITeye技术社区
您的访问请求被拒绝
亲爱的会员,您的IP地址所在网段被ITeye拒绝服务,这可能是以下两种情况导致:
一、您所在的网段内有网络爬虫大量抓取ITeye网页,为保证其他人流畅的访问ITeye,该网段被ITeye拒绝
二、您通过某个代理服务器访问ITeye网站,该代理服务器被网络爬虫利用,大量抓取ITeye网页
请您点击按钮解除封锁&android不同手机对于edittext光标显示样式不一,所以如果设置不同手机显示一样的效果呢,统一设置一个样式就可以了
android不同手机对于edittext光标显示样式不一,所以如果设置不同手机显示一样的效果呢,统一设置一个样式就可以了,示例代码如下:
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textCursorDrawable="@drawable/color_cursor"/&
样式文件:
&?xml version="1.0" encoding="utf-8"?& &
&shape xmlns:android="/apk/res/android" &
& & android:shape="rectangle"& &
& & &size android:width="1dp" /&
& & &solid android:color="#000000"& /&
&/shape& &
& 开源中国(OSChina.NET) |
开源中国社区(OSChina.net)是工信部
指定的官方社区