Nic*_*ick 6 android textview custom-component text-size
我正在开发一个自定义视图来调整textview中的文本大小,以便它适合(我不想椭圆化).
我遇到的麻烦是,在更改文本大小时,textview本身不会重新测量.我一直在查看源代码,发现setTextSize()正在调用以下内容:
nullLayouts();
requestLayout();
invalidate();
Run Code Online (Sandbox Code Playgroud)
所以它应该重新测量.这可能是一个错误,因为它在2.3上工作正常,而不是1.6,1.5和2.1仿真器.
这是代码片段,注意textview是扩展的:
@Override
protected void onSizeChanged(int w, int h, int oldw, int oldh) {
if(w == 0 && h == 0) {
setTextSize(TypedValue.COMPLEX_UNIT_PX, defaultSize);
}
updateView();
}
private void updateView() {
int viewWidth = getViewWidth();
float textWidth = getTextWidth();
float textSize = textSize();
while(textWidth > viewWidth && textSize >= MIN_TEXT_SIZE) {
setTextSize(TypedValue.COMPLEX_UNIT_PX, textSize-1);
textSize = getTextSize();
textWidth = getTextWidth();
}
}
Run Code Online (Sandbox Code Playgroud)
谁能给我提示正确的方向来解决这个问题?
Kar*_*att -3
在您的 xml 文件中写入以下代码。
<TextView
android:layout_height="40dip"
android:layout_width="100dip"/>
Run Code Online (Sandbox Code Playgroud)
简而言之,在您的 xml 文件中设置 TextView 的固定大小。
| 归档时间: |
|
| 查看次数: |
2204 次 |
| 最近记录: |