我正在尝试编辑TextView的宽度,然后根据某个得分值将其加载到屏幕上。该要求类似于,基于文本视图应具有宽度的相对分数值。
我在活动的onCreate()方法中编写了以下代码,如下所示,
{{{
TextView graph = (TextView) findViewById(R.id.predictionScoreGraph);
graph.getViewTreeObserver().addOnGlobalLayoutListener(
new OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
int score = 60;
UserData data = UserData.getInstance();
score = data.overallScore();
TextView graph = (TextView) findViewById(R.id.predictionScoreGraph);
int grossWidth = graph.getWidth();
Log.d(TAG, "Existing width of the text view is "
+ grossWidth);
LayoutParams existing = graph.getLayoutParams();
int fillWidth = (grossWidth * score) / 100;
Log.d(TAG, "Modified width is " + fillWidth);
graph.setWidth(fillWidth);
existing.width = fillWidth;
graph.setLayoutParams(existing);
graph.setBackgroundColor(getResources().getColor(
android.R.color.holo_green_light));
graph.getViewTreeObserver()
.removeGlobalOnLayoutListener(this);
}
});
}}}
它像宝石一样!但是,当我想为多个TextView对象执行此操作时,它不会更改TextView对象的宽度。
有人可以帮我解决一下如何更改多个TextView对象的宽度吗?
谢谢,
答案 0 :(得分:0)
尝试覆盖活动的GlobalLayoutListener
方法,而不是使用onMeasure
。