当前位置:首页 » 安卓系统 » androidtextview底部

androidtextview底部

发布时间: 2023-07-19 08:08:18

⑴ 请问android编程中,textview里面放了很多文字,怎样拖动textview让下面的内容显示出来。

还是我来告诉你吧!TextView本身不具备这样的功能。你可以把你的TextView放到一个ScrollView里面。固定ScrollView的宽(layout_width)和高(layout_height);把TextView的layout_width设为fill_parent,layout_height设为wrap_content.这样就可以实现相应的效果了。希望能帮到你!

⑵ Android TextView使用及性能优化

TextView 是Android中最常用的控件,在这里记录下TextView 的用法;

在Android中可以使用系统自带的4种字体:

在XML中使用 android:typeface="normal" 进行设置

将字体文件放到main/assets/fonts目录下,使用Asset读取字体后进行设置

使用 android:drawableLeft="@mipmap/ic_launcher" 可以设置一张图片显示在文字的上下左右,减少布局层级

使用Span能够在一段TextView中设置不同颜色的字体,链接,图片等内容

使用ClickableSpan 能够设置一段文字的点击事件

创建自己的MyClickableSpan:

之后使用SpannableStringBuilder来创建字符串,并使用setSpan来为字符串的一部分设置Span对象

其中setSpan()方法的最后一个参数标识有以下常量,这些常量标识着在 对SpannableStringBuilder进行insert时 添加的字符适用的规则:

Spanned.SPAN_EXCLUSIVE_EXCLUSIVE

Spanned.SPAN_EXCLUSIVE_INCLUSIVE

Spanned.SPAN_INCLUSIVE_EXCLUSIVE

Spanned.SPAN_INCLUSIVE_INCLUSIVE

前一个 EXCLUSIVE / INCLUSIVE 标识着在设置了Span的一段字符之前(紧挨着)插入字符时,被不被包含到Span范围中, EXCLUSIVE 表示包含, INCLUSIVE 表示不包含;

第二个 EXCLUSIVE / INCLUSIVE 同理表示插入这段字符之后的效果;

ImageSpan用于在TextView中插入图片,可以用来实现图文混排

使用方法:

这样实现的效果是文字与图片底部进行对齐,如果需要图片中线与文字中线对其,需要自己重写ImageSpan

​ Android 中的TextView中存在着很多EditText中的特性,在setText()方法中会涉及到很多Span相关的操作,比如设置TextWatcher,重新构造Spannable等操作,在我们仅仅显示静态文本的时候这些操作都是没有必要的(通过使用普通的TextView进行Debug来验证普通的TextView的确是Span的);

​ 在大量显示静态文本的时候就可以通过StaticLayout来计算出TextView的布局信息,这项工作可以放到非UI线程来进行,能够减少在setText()的时候UI线程的耗时,达到优化TextView性能的目的;

​ StaticLayout是TextView中用于显示多行静态文本的Layout,也是能够支持SpannableString的,只是不能在Span变化之后重新Layout,所以在大部分场景下已经适用;

通过这个自定义的View来显示Text,在onDraw()的时候直接使用layout来进行绘制,而设置需要显示的文本则直接使用setLayout()来实现

使用下面给出的参考链接中的测试Demo在 ZTE A2017 Android7.1.1 高通820设备上,普通TextView在ListView中连续滚动的帧数是55帧,使用StaticLayout的结果为60帧

可以作为在APP使用CPU资源较多的情况下的优化手段

参考链接: TextView预渲染研究

在Android中,TextView的测量消耗了大量的时间,Android P中提供了PrecomputedText能够将测量这个过程放到后台来执行,减轻对于UI线程的卡顿;

非Android P时,使用AppCompatTextView控件,使用setTextFeature()方法来将文本的measure过程放到其他线程来执行,而不是直接将text应用于TextView;

在调用了这个方法之后如果对TextView进行边距,文字大小等的设置都将会报错;

Prefetch Text Layout in RecyclerView

PrecomputedTextCompat

在ListView中仅替换设置Text的方法时未测试出性能与普通方法有什么优势,猜测是ListView没有在getView和显示之间预留时间,

测试项目地址:

https://github.com/GavynZhang/PrecomuptedTextViewTest

⑶ 2021-09-15 TextView属性大全

TextView 是用于显示字符串的组件,对于用户来说就是屏幕中一块用于显示文本的区域。

TextView 类的层次关系如下:

java.lang.Object
↳ android.view.View
↳ android.widget.TextView

直接子类:

Button,
CheckedTextView,
Chronometer,
DigitalClock,
EditText

间接子类:

AutoCompleteTextView,
CheckBox,
CompoundButton,
ExtractEditText,
MultiAutoCompleteTextView,
RadioButton,
ToggleButton

TextView 类方法
前面是方法,中间解释,后面为方法的返回值

getDefaultMovementmethod //获取默认的箭头按键移动方式 //Movementmethod
getText //获得TextView 对象的文本 //CharSquence
length //获得TextView 中的文本长度 //Int
getEditableText //取得文本的可编辑对象,通过 这个对象可对TextView 的文本进行操作,如在光标之后插入字符 //Void
getCompoundPaddingBottom //返回底部填充物 //Int
setCompoundDrawables //设置图像显示的位置,在 设置该Drawable 资源之前需要调用setBounds(Rect) //Void
//设置Drawable 图像的显示位置,但其边界不变 //Void
setPadding //根据位置设置填充物 //Void
getAutoLinkMask //返回自动连接的掩码 //Void
setTextColor //设置文本显示的颜色 //Void
setHighlightColor //设置文本选中时显示的颜色 //Void
setShadowLayer //设置文本显示的阴影颜色 //Void
setHintTextColor //设置提示文字的颜色 //Void
setLinkTextColor //设置链接文字的颜色 //Void
setGravity //设置当TextView 超出了文本本身时横向以及垂直对齐 //Void
getFreezesText //设置该视图是否包含整个文本,如果包含则返回真值,否则返回假值 //Boolean

属性
android:autoLink //设置是否当文本为URL 链接/email/电话号码/map 时,文本显示为可点击的链接。可选值(none/web/email/phone/map/all)
android:autoText //如果设置,将自动执行输入值的拼写纠正。此处无效果,在显示输入法并输入的时候起作用。
android:bufferType //指定getText()方式取得的文本类别。选项editable 类似于StringBuilder 可追加字符,也就是说getText 后可调用append 方法设置文本内容。
android:capitalize //设置英文字母大写类型。此处无效果,需要弹出输入法才能看得到,参见EditView 此属性说明。
android:cursorVisible //设定光标为显示/隐藏,默认显示。
android:digits //设置允许输入哪些字符。如“1234567890.+-*/%\n()”
android:drawableBottom //在text 的下方输出一个drawable,如图片。如果指定一个颜色的话会把text 的背景设为该颜色,并且同时和background 使用时覆盖后者。
android:drawableLeft //在text 的左边输出一个drawable,如图片。
android:drawablePadding //设置text 与drawable(图片)的间隔,与drawableLeft、drawableRight、drawableTop、drawableBottom 一起使用,可设置为负数,单独使用没有效果。

android:drawableRight //在text 的右边输出一个drawable,如图片。
android:drawableTop //在text 的正上方输出一个drawable,如图片。
android:ellipsize //设置当文字过长时,该控件该如何显示。有如下值设置:”start”—–省略号显示在开头;”end”——省略号显示在结尾;”middle”—-省略号显示在中间;”marquee” ——以跑马灯的方式显示(动画横向移动)

android:freezesText //设置保存文本的内容以及光标的位置。
android:gravity //设置文本位置,如设置成“center”,文本将居中显示。
android:hint //Text 为空时显示的文字提示信息,可通过textColorHint 设置提示信息的颜色。比较奇怪的是TextView 本来就相当于Label,怎么会不设置Text?!
android:includeFontPadding //设置文本是否包含顶部和底部额外空白,默认为true。
android:inputMethod //为文本指定输入法,需要完全限定名(完整的包名)。
android:linksClickable //设置链接是否点击连接
android:marqueeRepeatLimit //在ellipsize 指定marquee 的情况下,设置重复滚动的次数,当设置为marquee_forever 时表示无限次。
android:ems //设置TextView 的宽度为N 个字符的宽度。
android:maxEms //设置TextView 的宽度为最长为N 个字符的宽度。
android:minEms //设置TextView 的宽度为最短为N 个字符的宽度。
android:maxLength //限制显示的文本长度,超出部分不显示。
android:lines //设置文本的行数,设置两行就显示两行,即使第二行没有数据。
android:maxLines //设置文本的最大显示行数,与width 或者layout_width 结合使用,超出部分自动换行,超出行数将不显示
android:minLines //设置文本的最小行数,与lines 类似。
android:lineSpacingExtra //设置行间距。
android:lineSpacingMultiplier //设置行间距的倍数。
android:password //以小点”.”显示文本
android:phoneNumber //设置为电话号码的输入方式。
android:scrollHorizontally //设置文本超出TextView 的宽度的情况下,是否出现横拉条。
android:shadowColor //指定文本阴影的颜色,需要与 shadowRadius 一起使用。
android:shadowRadius //设置阴影的半径。
android:shadowDx //设置阴影横向坐标开始位置。
android:shadowDy //设置阴影纵向坐标开始位置。
android:singleLine //设置单行显示。
android:text //设置显示文本.

android:textAppearance //设置文字外观。如“?android:attr/textAppearanceLargeInverse”这里引用的是系统自带的一个外观,?表示系统是否有这种外观,否则使用默认的外观。可设置的值如下:textAppearanceButton/textAppearanceInverse/textAppearanceLarge/textAppearanceLargeInverse/textAppearanceMedium/textAppearanceMediumInverse/textAppearanceSmall/textAppearanceSmallInverse

android:textColor //设置文本颜色
android:textColorHighlight //被选中文字的底色,默认为蓝色
android:textColorHint //设置提示信息文字的颜色,默认为灰色。与hint 一起使用。
android:textColorLink //文字链接的颜色.
android:textScaleX //设置文字之间间隔,默认为1.0f。
android:textSize //设置文字大小,推荐度量单位”sp”,如”15sp”
android:textStyle //设置字形[bold(粗体) 0, italic(斜体) 1, bolditalic(又粗又斜) 2] 可以设置一个或多个,用“|”隔开android:typeface //设置文本字体,必须是以下常量值之一:normal 0, sans 1, serif 2, monospace(等宽字体) 3]

android:height //设置文本区域的高度,支持度量单位:px(像素)/dp/sp/in/mm(毫米)
android:maxHeight //设置文本区域的最大高度
android:minHeight //设置文本区域的最小高度
android:width //设置文本区域的宽度,支持度量单位:px(像素)/dp/sp/in/mm(毫米)。
android:maxWidth //设置文本区域的最大宽度
android:minWidth //设置文本区域的最小宽度

原文链接: https://blog.csdn.net/Adomner/article/details/52263987

热点内容
苹果耳塞怎么改安卓也能用 发布:2025-02-05 14:50:54 浏览:557
安卓如何鉴别手机真假 发布:2025-02-05 14:28:15 浏览:119
ffmpeglinux编译 发布:2025-02-05 14:28:04 浏览:544
服务器如何做界面 发布:2025-02-05 14:27:23 浏览:290
访问学者单位推荐意见 发布:2025-02-05 14:13:05 浏览:853
微信密码锁忘了怎么办 发布:2025-02-05 14:11:07 浏览:311
web是什么文件夹 发布:2025-02-05 14:11:05 浏览:235
对信访问题调查 发布:2025-02-05 14:09:39 浏览:984
singlephp 发布:2025-02-05 14:09:24 浏览:774
数据库的字段命名规则 发布:2025-02-05 13:53:16 浏览:684