1.基本 操作 强制换行 自动换行
这个 “\n”换行
在xml中添加属性:
android:ellipsize="none"
android:maxLines="100"
android:scrollHorizontally="false"
2.Textview 代码设置不同颜色
如在adapter中
holder.tv_body.setText("回复"+ item.getReplynickname() +": "+ item.getContent().toString());
// 被回复人黄色 设定要回复名字的长度
SpannableStringBuilder builder =newSpannableStringBuilder(
holder.tv_body.getText().toString());
ForegroundColorSpan linkColorSpan =newForegroundColorSpan(
Color.argb(255,255,221,0));
int length = item.getReplynickname().length();
builder.setSpan(linkColorSpan,2,2+ length,
Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
holder.tv_body.setText(builder);
3.Textview draw方向 代码替换图片
示例为左边
Drawable drawable =ContextCompat.getDrawable(context,R.drawable.user_icon_zan_true);
drawable.setBounds(0,0,drawable.getMinimumWidth(),drawable.getMinimumHeight());
holder.tv_zan.setCompoundDrawables(drawable, null, null, null);
4.Textiew 单行显示省略点
添加
android:singleLine="true"
android:ellipsize="end"
之外
android:ellipsize = "start" 省略号在开头
android:ellipsize = "middle" 省略号在中间
android:ellipsize = "marquee" 跑马灯
但是
你set的字符串最后一个字符是一个中文,显示的省略号就是三个点,如果是英文的那么有可能只显示一个点或者两个点。
copy 别人的解决办法
mTvUser.post(newRunnable() {
@Override
publicvoidrun() {
String ellipsizeStr = (String) TextUtils.ellipsize(mInfo.nickname,
(TextPaint) mTvUser.getPaint(), mTvUser.getMeasuredWidth() -10, TextUtils.TruncateAt.END);
mTvUser.setText(ellipsizeStr);
}
});
5.多个Textview不同大小尺寸对齐
需要对齐的Textview中 都要写统一 比如这是 下边底部对齐。
android:layout_gravity="bottom"
android:gravity="center_horizontal|bottom"
android:includeFontPadding="false"