新手Java问题 - 在Auto Scaling Text视图的所有帖子中,没有人指出您实际使用提供的类的方式 . 它似乎是一个更好的解决方案是Chase的Auto Scale TextView Text to Fit within Bounds
有谁知道你如何使用它?例如:
String bigTextString = "This is a test!";
TextView t = (TextView)findViewById(R.id.big_text);
t.setTextSize(returnFontSize(bigTextString));
t.setText(bigTextString);
returnFontSize不存在,只是为了说明而显示 . AutoResizeTextView类在其自己的文件中正确设置 .
谢谢(忽略下面的简短评论,因为StackOverflow有一个不允许重新评论评论的错误,它也限制为512个字符) .
我一定还在遗漏一些东西 . 如果我只使用建议的两行,你在哪里传递文本字符串?我尝试了类似的东西,但它只是在运行时崩溃,这是有道理的 .
AutoResizeTextView t = new AutoResizeTextView(this);
linearMain.addView(findViewById(R.id.big_text));
addView失败并出现“IllegalStateException:指定的子节点已经有父节点 . 你必须首先在子节点的父节点上调用removeView() . ”,这看起来很奇怪,因为我不想删除视图(我认为),而我看不出它如何知道字符串放在屏幕上 .
是否真的需要addView,因为它已在布局中定义 .
我只是想传递它的文字 . 例如:
TextView t = (TextView)findViewById(R.id.big_text);
t.setTextSize(textSize);
t.setTextColor(textColor);
t.setText(bigTextString);
这样运行,除了Android在屏幕上拟合文本的工作很差,这取决于“bigTextString”中的内容 .
1 回答
好吧,如果你有一个描述如何制作和修改对象的类,你需要做的就是用它的构造函数和方法来修改它 . 以下是您链接中的一个 .
你调用你的活动
FontFitTextView textViewName = new FontFitTextView(context, attrs);
然后通过layoutName.addView(textViewName);
将它添加到视图中这意味着你需要通过它的android:id找到你用于布局的视图,因为我假设你不想以编程方式构建整个布局 . 您也可以通过<packagename.FontFitTextView />
在xml中调用构造函数tl; dr - 使用构造函数