你没设置文字颜色吧
tvsetTextColor(thisgetResources()getColor(Rcolorblack));
强制给设个颜色,不然系统自己默认个给你显示,有的版本系统默认白色有的黑色。我之前就遇到过,在233系统上显示黑色,在400系统显示白色
TextView tv=new TextView(context);
LinearLayoutLayoutParams params=new LinearLayoutLayoutParams(
LinearLayoutLayoutParamsWRAP_CONTENT,LinearLayoutLayoutParamsWRAP_CONTENT
);
tvsetLayoutParams(params);
//左右上下
int left=tvgetLeft();
int right=tvgetRight();
int width=tvgetWidth();
int height=tvgetHeight();
//左右上下的内部空白
int padingLeft=tvgetPaddingLeft();
int padingRight=tvgetPaddingRight();
int padingTop=tvgetPaddingTop();
int padingBt=tvgetPaddingBottom();
//只有LinearLayoutLayoutParams等有Margins属性,不是所有的布局都有Margins要看具体情况
int marginLeft=paramsleftMargin;
int marginRight=paramsrightMargin;
int marginTop=paramstopMargin;
int marginBt=paramsbottomMargin;
有时候运行时代码需要这样取Margins:
ViewGroupLayoutParams p=thisgetLayoutParams();
if(p!=null && p instanceof LinearLayoutLayoutParams){
LinearLayoutLayoutParams lp=(LinearLayoutLayoutParams)p;
int margingLeft=lpleftMargin;
}
用getWidth()方法,可以获取像素单位的宽度。
android的控件一般是继承的androidView这个类,所以可以直接用View#getWidth()方法获取控件宽度。另外这个方法是final方法,无法被子类覆盖,所以可以安心调用
android:ems设置TextView的宽度为N个字符的宽度。这里测试为一个汉字字符宽度
android:maxEms设置TextView的宽度为最长为N个字符的宽度。与ems同时使用时覆盖ems选项。
android:minEms设置TextView的宽度为最短为N个字符的宽度。与ems同时使用时覆盖ems选项。
android:maxLength限制显示的文本长度,超出部分不显示。
android:lines设置文本的行数,设置两行就显示两行,即使第二行没有数据。
android:maxLines设置文本的最大显示行数,与width或者layout_width结合使用,超出部分自动换行,超出行数将不显示。
android:minLines设置文本的最小行数,与lines类似。
android:lineSpacingExtra设置行间距。
android:lineSpacingMultiplier设置行间距的倍数。如”12”
以上就是关于android动态添加textview全部的内容,包括:android动态添加textview、android中获取TextView位置、android如何获取控件宽度等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)