Android 开发学习进程0.17 Android资源文件selector textview相关属性

selector 是安卓资源文件的一种,它可以使按钮等实现不同状态下的不同UI,不用在代码中实现,而使用方式有两种,一种在color文件下 创建.xml可以使按钮等字体在不同状态下的变化,其二是在drawable中创建资源文件,可以设置背景等,下面的<shape标签可以绘制不同种图形,<gradient还可以实现渐变色的效果。

如何使一个textview显示两种不同字体的布局

对于新手来说可以使用多个textview拼接的方法,但此方法繁琐,一个textview实现有两种方法,
一是通过Android支持的HTML来实现不同字体颜色大小,但此方法不可以精确控制字体大小,如 tv1.setText(Html.fromHtml("<font color=\'#217aff\' ><big>abc</big></font><font color=\'#217aff\' ><small>def</small></font>"));
另外一种方式为使用 SpannableString的方式,可以准确控制大小,同时可以把此类封装,便于使用。

SpannableString s1 = new SpannableString("asdf");
s1.setSpan(new AbsoluteSizeSpan(18, true), 0, s1.length()-2, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
s1.setSpan(new AbsoluteSizeSpan(10, true), s1.length()-2, s1.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
 //或设置颜色 s2.setSpan(new ForegroundColorSpan(Color.parseColor("#656565")), 0, 4, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
tv3.setTextColor(Color.parseColor("#217aff"));
tv3.setText(s1);

解释一下方法参数,设置字体时第一个参数为字号大小,第二个第三个是应用范围,从第0个字符开始,最后的参数为应用范围之间的交叉,或理解为范围末端是否会被包括。
TextView 是很多类的父类,同时也有一些不常用的属性,如:
android:scrollbars="none" 设置有滚动条时滚动条位置。
android:textIsSelectable="true" 设置为true时文本长按可选中复制,同时空间支持滚动,
tvText.setMovementMethod(ScrollingMovementMethod.getInstance()); Java代码设置内容超出时是否可以滚动。
一些空间如textview imageview等可以设置最大值:

android:adjustViewBounds="true"  
android:maxHeight="150.0dip"  
android:maxWidth="150.0dip"  
android:minHeight="33.0dip"  
android:minWidth="48.0dip"  

值得注意的是,设置最大值的控件需要先绘制,即先计算布局大小(父布局中)同时要设置adjustviewbounds 为true

posted @ 2020-06-28 23:21  百密一疏  阅读(302)  评论(0编辑  收藏  举报