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

详解Android TextView属性ellipsize多行失效的解决思路

本文介绍了Android TextView属性ellipsize多行失效的解决思路,分享给大家,具体如下: 多余文字显示省略号的常规做法 android:ellipsize=”end” //省略号显示在末尾...android:ellipsize=”middle” //省略号显示在中间 但是设置android:maxLines=”2″ 以后,ellipsize的值end有效,middle无效,本方法解决middle...无效的问题 /** * 字符串显示到textView, textView maxLines=2 * 如果字符串太长显示不下,则用省略号代替 * 省略号的位置在第一行末尾 * * @param...*/ private String ellipsizeString(TextView textView, String str, int width) { Paint paint = textView.getPaint...paint.breakText(str, end, str.length(), true, width, null); //计算指定宽度下显示的字符串数量 都是api的方法,详细见源码 需要完善的地方,android

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

Android开发中TextView文本过长滚动显示实现方法分析

本文实例讲述了Android开发中TextView文本过长滚动显示实现方法。分享给大家供大家参考,具体如下: 项目中在使用TextView时,总会有因要显示的内容过多而需要我们进行处理的问题。...我们第一时间想到的是TextViewandroid:ellipsize属性,比如 android:ellipsize="end",效果是在文字的尾部打三个小点。...如果要求文字全部显示,但是为了保存UI界面美观,有限大小的TextView中如何显示全部的超长文本呢,我们就想到了让文本滚动显示。...大家也想到了通过 android:ellipsize="marquee"来实现,不过我在项目中使用这个也没有实现效果。 配合了android:singLine="true"也一样不能实现文本滚动显示。...比如有人建议在布局文件中的TextView添加 android:focusable="true",不过有时也是没有效果的。

2.6K10

Draw Text in Deep

Android系统提供了Textview来提供文字的显示,但很多时候开发者还需要使用Canvas来绘制Text,这时候,canvas.drawText()就不像Textview的使用这么简单了,需要掌握文字的测量以及渲染的流程...文本测量 文本的测量是非常复杂,因为要适配全球几百种语言不同的排版,除了前面提到的FontMetrics,Android的渲染API还提供了很多测量文本的API。...(top) + leading行距是不一样的,这主要是因为这两个API的计算方式不同,系统推荐使用getFontSpacing来获取多行文本绘制时的行距。...BoringLayout用于绘制仅一行文本的场景,它比较重要的地方是,它提供了一个静态方法isBoring来判断一段文字是否能在一行放下,这对于布局渲染是非常有帮助的。...,一共有三种,LEFT、CETNER和RIGHT,默认值为LEFT,它的作用是在绘制的时候确定绘制的方向,例如设置为LEFT,那么文本绘制的时候,就是从baseline的StartX开始向右绘制文本,如果是

1.3K30

EditText的属性和使用方法

EditText与TextView非常相似,它甚至与TextView 共用了绝大部分XML属性和方法。EditText与TextView的最大区别在于:EditText可以接受用户输入。...n android:inputType="textAutoComplete":自动完成。 n android:inputType="textMultiLine":多行输入。...n android:inputType="textImeMultiLine":输入法多行(如果支持)。 n android:inputType="textNoSuggestions":不提示。.../> 上面界面布局中的第一个文本框通过android:hint指定了文本框的提示信息:请输入用户名——这是该文本框默认的提示。...当用户还没有输入时,该文本框内默认显示这段信息; 第二个输入框通过android:inputType="numberPassword”设置这是一个密码框,而且只能接受数字密码,用户在该文本框输入的字符会以点号代替

2.2K90

AndroidTextView实现超过固定行数显示“…展开全部”

前言 大家都知道,如果要让TextView只显示一行,多出部分用省略号代替的话非常容易,只需要为xml文件中的TextView控件添加android:singleLine="true"即可,那么如果我想让它显示多行的时候应该怎么做呢...示例代码: 工具类: /** * 设置textView结尾...后面显示的文字和颜色 * @param context 上下文 * @param textView textview * @param...minLines 最少的行数 * @param originText 原文本 * @param endText 结尾文字 * @param endColorID 结尾文字颜色id * @param...isExpand 当前是否是展开状态 */ public void toggleEllipsize(final Context context, final TextView textView...(); TextPaint paint = textView.getPaint(); float moreText = textView.getTextSize() * endText.length

2.6K20

打造 Material 字体样式主题 | 实现篇

△ 具有基准值的 MDC 字体样式属性 Material 组件使用这些字体样式属性来为组件的文本元素设置样式,这些组件通常继承自 TextView 或组合了一个或多个 TextView。...了解每一种样式的作用及其使用场景是非常有用的: textAppearanceHeadline* 样式应用于标题 textAppearanceSubtitle* 样式应用于副标题 textAppearanceBody* 样式应用于多行文本正文...textAppearanceOverline 样式也应用于小号文本,但是它具有大写英文字母和更大的字符间距,因此更适合于小标题和 Label,例如日期选择器的标题 字体样式工具 Material...:textColor 定义文本的颜色 android:letterSpacing 定义字符的间距 android:textAllCaps 定义是否开启文本大写,是一个布尔值 android:...您可以按如下步骤来确定哪些组件会响应主题字体样式属性的改变: 克隆 该项目 并在 Android Studio 中运行它 调整 res/values/type.xml 和 res/values/themes.xml

1.5K20

真·富文本编辑器的演进之路-Span的整体性控制

首先,创建一个ATSpan,继承自ImageSpan,附带@的数据信息 解析要添加的富文本数据,将要展示的内容,例如「@xuyisheng」,作为文本,创建一个TextView来承载 将生成的TextView...转化为Drawable,设置给ATSpan,并传入@的相关数据信息 将ImageSpan插入Edittext,实现整体性Span的富文本插入 可以发现,这种方案的实现步骤是比较简单的,但是它的确定也很明显...,同时,由于TextView-Drawable的整体性,一旦TextView多行或者当前行剩余位置不够,那么第二行的剩余区域都将被View的矩形区域填满,从而导致这些区域无法再输入文本,如下所示。...其实,Android的Span不仅功能非常强大,而且也提供了非常完善的管理API,在TextView和Edittext中,我们要监听Text的变化过程,可以使用TextWatcher,它可以在文本发生改变时进行回调...当我们检测到这两个事件后,根据当前Selection的位置,拿到当前是否存在「整体性Span」,如果是「整体性Span」,那么在删除时则整体移除即可。

1.9K30

Android项目实战(二十七):数据交互(信息编辑)填写总结

需求包括: 一个标题TextView 一个圆角白色背景EditText 一个可输入个数提示的TextView 两个按钮,‘确定’、‘取消’ 对话框展现形式。  代码实现: (1)编写布局文件 <TextView android:id="@+id/popup_edit_info_btn_confirm...isSingleLine EditText是否限制一行显示 maxSize EditText中文字的最大长度 textview 修改的TextView控件,首先要讲该控件的文本显示在EditText中...,点击确定后需要将编辑文本显示在改控件中 private void showEditDialog(String title , boolean isSingleLine , final int maxSize...--确定按钮,这里用TextView ,当然也可以用Button ImageButton--> <TextView android:id="@+id/popup_edit_info_btn_confirm

3.5K70

iOS学习——键盘弹出遮挡输入框问题解决方案

在iOS或Android等移动端开发过程中,经常遇到很多需要我们输入信息的情况,例如登录时要输入账号密码、查询时要输入查询信息、注册或申请时需要填写一些信息等都是通过我们键盘来进行输入的,在iOS开发过程中...,一般用于进行输入信息的有两类:UITextField和UITextView,前者是单行输入文本框,后者是可滑动的多行输入文本框,在这整个开发过程中,我们需要控制键盘的弹出和收起、在输入结束的时候获取输入的信息...first responder),文本框成为第一响应者的结果就是可以输入文本内容并弹出键盘,所以,我们可以在这个方法中通过返回值来判断是否弹出键盘。...在前的分析中,我们知道,在发出通知之前,系统会调用输入文本框代理的 textFieldShouldBeginEditing: 方法来判断是否允许编辑,那么我们可以在这个方法中判断是哪一个文本框以及文本框的具体位置等等...,然后在键盘弹出时通过为止比较确定是否平移,以及平移的offset。

3.4K60

android学习笔记----软键盘换行按键效果测试(imeOptions)

注意:看到其他的博客上写的都是用的android:singleLine="true"(因为默认是多行模式,而右下角的按键是用于换行的,当设置为单行模式后就没必要换行了) 但是这个方法文档显示已经废弃了...关于singleLine:@deprecated不推荐使用此属性 格式:boolean 将文本约束为单个水平滚动线,而不是让它包裹在多行上,并在按Enter键时提前聚焦而不是插入换行符。...对于不可编辑的文本,默认值为false(多行换行文本模式),但如果为inputType指定任何值,则默认值为true(单行输入字段模式)。...使用maxLines来改变静态文本的布局(比如TextView需要singleLine效果),并使用inputType属性中的textMultiLine标志代替可编辑的文本视图(比如EditText需要...; import android.widget.EditText; import android.widget.TextView; import android.widget.Toast; public

77110
领券