作者:宜宾开心花行 | 来源:互联网 | 2023-05-22 18:53
我有一个带有TextView的主屏幕小部件:
我需要得到这篇文章的大小.我试图获取默认TextView的大小文本,如下所示:
TextView defaultTextView = new TextView(context);
float sourceTextSize = defaultTextView.getTextSize();
而sourceTextSize包含21.但这是错误的值,因为如果我使用remoteViews.setFloat(R.id.textView, "setTextSize", 21)
它,它会使我的文本更大.
如何在窗口小部件上获取TextView的默认文本大小?
1> Debu..:
实际上,defaultTextView.getTextSize()以像素为单位返回大小,setTextSize(size)将输入视为sp,因此您的文本会变大.因此,不是直接设置文本大小,而是首先根据密度进行转换.
float sourceTextSize = defaultTextView.getTextSize();
TextView.setTextSize(sourceTextSize / getResources().getDisplayMetrics().density);