Android TextView属性设置大全

104 阅读2分钟

在java文件中:

tv.setEllipsize(TextUtils.TruncateAt.valueOf("END"));

tv.setEllipsize(TextUtils.TruncateAt.valueOf("START"));

tv.setEllipsize(TextUtils.TruncateAt.valueOf("MIDDLE"));

tv.setEllipsize(TextUtils.TruncateAt.valueOf("MARQUEE"));

//最好加一个TextView显示行数的约束。

tv.setSingleLine(true);

不仅对于textview有此属性,对于editext也有,不过它不支持marquee。

文字展开和收缩


代码动态设置字体大小

tv.setTextSize(TypedValue.COMPLEX_UNIT_PX,15); //22像素 

tv.setTextSize(TypedValue.COMPLEX_UNIT_SP,15); //22SP 

tv.setTextSize(TypedValue.COMPLEX_UNIT_DIP,15);//22DIP

实践证明: 保证跟xml布局文件中的sp字体设置效果一样,适配机型;

同一TextView设置背景色圆角


public RecyclerViewHolder setViewShape(int viewId, int roundRadius,String color) {

View view = findViewById(viewId);

int fillColor = Color.parseColor("#"+color);//内部填充颜色

GradientDrawable gd = new GradientDrawable();//创建drawable

gd.setColor(fillColor);

gd.setCornerRadius(roundRadius);

view.setBackground(gd);

return this;

}

同一TextView设置不同字体大小


String type = "¥"+bean.getCouponValue();

TextView tvType = holder.getTextView(R.id.tv_coupon_type);

Spannable WordtoSpan = new SpannableString(type);

WordtoSpan.setSpan(new AbsoluteSizeSpan(DensityUtil.dip2px(mContext,14)), 0, 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);

WordtoSpan.setSpan(new AbsoluteSizeSpan(DensityUtil.dip2px(mContext,20)), 1, type.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);

tvType.setText(WordtoSpan);

工具类:分辨率dp和px相互转换


import android.content.Context;

/**

*/

public class DensityUtil {

/**

  • 根据手机的分辨率从 dp 的单位 转成为 px(像素)

*/

public static int dip2px(Context context, float dipValue) {

final float scale = context.getResources().getDisplayMetrics().density;

return (int) (dipValue * scale + 0.5f);

}

/**

  • 根据手机的分辨率从 px(像素) 的单位 转成为 dp

*/

public static int px2dip(Context context, float pxValue) {

final float scale = context.getResources().getDisplayMetrics().density;

return (int) (pxValue / scale + 0.5f);

}

}

最后

Android学习是一条漫长的道路,我们要学习的东西不仅仅只有表面的 技术,还要深入底层,弄明白下面的 原理,只有这样,我们才能够提高自己的竞争力,在当今这个竞争激烈的世界里立足。

人生不可能一帆风顺,有高峰自然有低谷,要相信,那些打不倒我们的,终将使我们更强大,要做自己的摆渡人。

我把自己这段时间整理的Android最重要最热门的学习方向资料放在了我的GitHub,里面还有不同方向的自学编程路线、面试题集合/面经、及系列技术文章等。

资源持续更新中,欢迎大家一起学习和探讨。