一、 TextView
1. 本体
1、基本用法:
- Style:TextView 字体格式定制
- 最好都设置wrap_content。
- getColorStateList的应用:在代码中设置selector颜色
- 行高的话有个lineheight,按dp来,不按倍数来: TextView设置行间距、行高,以及字间距_textview 行距
- 使用LinearGradient绘制颜色渐变,Android TextView文字颜色渐变,测试发现,最好给原xml文件中加入白色文字颜色,不然部分机型的显示会非常淡。
- Android Textview实现文字颜色渐变效果封装
- TextView其实自带一定的内边距,不需要则可使用 android:includeFontPadding="false"将其去除
- Android TextView实现下划线的几种方式 直接画
- Android textview设置行间距及字距,下划线
- 文字不居中的情况:
android:includeFontPadding="false",有些时候设置了center却还是不居中,需要设置这个消除文字内自带padding; - 浅扒Android动态设置字体大小
- TextView字体大小设置同方式的区别
- android获取textview的行数
- android中提前获取TextView行数
- maxLines限定最大,line为固定行数
- android:textAllCaps="true" 自动小写转大写
- Android中通过typeface设置字体
- 引用res/font下的字体文件 android:fontFamily="@font/poppins_semibold"
- 手动换行,加上 \n 即可,xml和Ac中都行
- android:gravity="start" 不用居中的时候,居左的最好还是写起来
- 在指定位置插入字符串
- 给文字添加阴影
- 判断文件后缀名的方式:string.endsWith("jpg")
- 一般invisible和gone状态设置text也是能生效的
- TextView限制多行,超出内容时用省略号显示_textview不定行数,显示不下时添加省略号
- ps:指定 android:lines="1",设置maxweight,超出部分也会自动变成省略号
- 图片交互
- 代码中设定颜色
textView.setTextColor(Color.WHITE)
textView.setTextColor( Color.parseColor("#2199FC"))
setTextColor(Color.WHITE)
setTextColor("#FF0041D5".parseColor())
//字符串拼接带换行符
String.format("%.2f %sMB/S", speed, System.getProperty("line.separator"))
2、 加入Drawable
- 代码中设置:安卓 TextView 设置Drawable大小
- 除了对应的drawablepadding还能想办法设置宽度,再使用padding左右控制与文字的间距;
- 动态设置Drawable资源
3、关于打印
- mBindView.tvTitleDate.text=date.tag//值是空白
- mBindView.tvTitleDate.text="${date.tag}"//值是null,会打印出来
2、 与Linear的交互
1、 indexOfChild,getChildAt,View.parent,传递text的值结合设置style,快速叠楼,且满足拓展打点,贼好用,点击事件统一处理,建立组list判断包含;
3、缺陷
1、 点击缺陷:例如长按松手不会回调,偶尔点按不会触发按下和点击状态。
二、EditView
1、显示默认占位图:android:hint
- hint颜色:textColorHint
2、设置高度随内容变化
- android:minHeight="@dimen/dp_60"
- android:layout_height="wrap_content"
三、字符相关
1、增删改查
- 去除空格与整体替换:android去掉字符串所有空格
- 代码中处理字符个人喜欢用删
2、拼接测试
1、 StringBuilder连接最快,倍数以k计:
- 参考链接:内存优化
- 所以程序中好别用+来连接字符串
2、如果要拼接不同颜色字符串则需要用 SpannableStringBuilder
3、占位符管理
占位符与动态字符串
- java怎么取字符串前几位字符?
- 核心在于getString方法,和c语言%c是一样的,若是资源文件需要有占位
- xml占位符 例如空格等等,不加占位符的话,收尾空格textview会自动去除
1.4.4 Android中Textview文字设置不同颜色、下划线、加粗、超链接 1)设置超链接会变色,还有会跳出去 2)setSpan(object : ClickableSpan 自带下划线 3)tvPrivacyPolicy.setMovementMethod click才生效,点击和超链接
Android设置TextView中部分字体颜色和点击事件_neuHenry的博客-CSDN博客
三、编码
1、 char码值对照表_weixin_34342905的博客-CSDN博客
1.1 英文字符,阿拉伯数字,常见标点符号。
2、 Unicode 字符编码表|汉字Unicode编码的区间为:0x4E00→0x9FA5(转)
4.1 同Ascll码,大写在前;
5、 Android 实现中文按拼音排序方法_暴走邻家的博客-CSDN博客_android 按拼音排序
四、多语言
5. 多语言适配
1、使用插件:AndroidStringTool,excell准备相应文档
2、设置多语言当中只使用当前xml
<string name="back" translatable="false">xxx;</string>
3、常见国家简写
5、Android string 数字转阿拉伯语言格式 String.format(Locale.getDefault()
6、%为 作为%d这类待替换的标识符号优先级非常高,不做特殊处理会对后面最近的一个非空字符执行%,例 35%meter会导致(%m)crash,应该使用 35%% (双%%表示字符%自身不替换) ,阿语用d%
7、Android原生多语言切换方案,兼容Android10
- SpannableString和SpannableStringBuilder总结 与样例,注意样例里的下标位置应当留意多语言与index(最好默认为0然后让他找到某个决定性字符)
- SpannableString在多语言中的应用
8、几需一行代码完成多语言切换 | Blankj's Blog
五、工具方法
1、走马灯样式
- 中间的三行代码 设置单行跑马灯一直跑
<TextView
android:id="@+id/Run_textid"
android:layout_width="80dp"
android:layout_height="80dp"
android:textSize="40dp"
android:text="Hello World!Hello World!"
android:ellipsize="marquee"
android:marqueeRepeatLimit="marquee_forever"
android:singleLine="true"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
- MainAC设置选中
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
Run_textid.isSelected=true
}
}
- 效果图