我以编程方式在任意位置创建一个TextView。问题是:如果文本足够长(例如“黄色”),则TextView超出范围。
我的密码
private TextView createField(int textColor, String text){
int width = Random(10, 500);
int height = Random(10, 500);
TextView valueTV = new TextView(this);
valueTV.setText(text);
valueTV.setTextColor(textColor);
valueTV.setTextSize(25);
valueTV.setTypeface(null, Typeface.BOLD);
valueTV.setSingleLine(true);
valueTV.setMaxLines(1);
LinearLayout.LayoutParams llp = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
llp.setMargins(width, height, 50, 50); // llp.setMargins(left, top, right, bottom);
valueTV.setLayoutParams(llp);
return valueTV;
}
如果文本在屏幕上很长,如何自动将TextView移到左侧?
最佳答案
如果要动态添加视图,则首先需要获取当前设备屏幕的宽度和高度。使用以下代码获取屏幕的宽度:
DisplayMetrics displayMetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
int screenWidth = displayMetrics.widthPixels;
然后,计算每一次以添加视图,并在单行中添加总宽度可用的剩余空间。我的建议是请为每行使用每个单独的布局。
我希望这能帮到您。