Bigkoo / Bigkoo/Android-PickerView
滚轮控件计算文字最大宽度效率太低
- Dominant language
- Java
- Stars
- 13.4k
- Forks
- 3.4k
- PR merge metrics
- No merged PRs in 30d
Description
WheelView类里面
` /**
* 计算最大length的Text的宽高度
*/
private void measureTextWidthHeight() {
Rect rect = new Rect();
for (int i = 0; i < adapter.getItemsCount(); i++) {
String s1 = getContentText(adapter.getItem(i));
paintCenterText.getTextBounds(s1, 0, s1.length(), rect);
int textWidth = rect.width();
if (textWidth > maxTextWidth) {
maxTextWidth = textWidth;
}
}
paintCenterText.getTextBounds("\u661F\u671F", 0, 2, rect); // 星期的字符编码(以它为标准高度)
maxTextHeight = rect.height() + 2;
itemHeight = lineSpacingMultiplier * maxTextHeight;
}
`
在数据量较大的情况下效率太低,测试列表20000条数据出现明显延迟,是否可以优化成
`
private void measureTextWidthHeight() {
String temp = "";
Rect rect = new Rect();
int count = adapter.getItemsCount();
for (int i = 0; i < count; i++) {
String s1 = getContentText(adapter.getItem(i));
if (s1.length() > temp.length()) {
temp = s1;
}
}
paintCenterText.getTextBounds(temp, 0, temp.length(), rect);
maxTextWidth = rect.width();
paintCenterText.getTextBounds("\u661F\u671F", 0, 2, rect); // 星期的字符编码(以它为标准高度)
maxTextHeight = rect.height() + 2;
itemHeight = lineSpacingMultiplier * maxTextHeight;
}
`
减少宽度测量次数。
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.