重新绘制方向更改的视图

时间:2011-11-19 09:06:54

标签: android viewgroup android-view android-orientation

我在TextView中使用了ViewGroup,而我正在使用ViewGroup创建一个类似于可滚动UI的图库。 TextView的整个背景都填充了单一颜色。一切正常,但是当我将orientationportrait更改为landscape再转换为portrait时,反之亦然,TextView's原始大小会保留,因此,这幅画看起来迷失方向。但是当我平移或滚动时,它会被重新校正。扩展ViewGroup的我的班级没有处理绘图部分,我尝试了以下内容:

  • 使ViewGroup
  • 无效
  • 显示当前视图失效。
  • 实施onConfigurationChanged(在Manifest中进行适当更改)。

我不希望在配置更改后保存currentState后重新创建TextView的过程。这是我在ViewGroup中添加视图的代码片段: -

final int[] backgroundColors = { Color.RED, Color.BLUE, Color.CYAN, Color.GREEN, Color.YELLOW };
    for (int i = 0; i < 5; i++) {
        TextView textView = new TextView(getApplicationContext());
        textView.setText(Integer.toString(i + 1));
        textView.setTextSize(100);
        textView.setTextColor(Color.BLACK);
        textView.setGravity(Gravity.CENTER);
        textView.setBackgroundColor(backgroundColors[i]);
        mWorkspace.addView(textView);
    }
    //mWorkspace.setSeparator(R.drawable.seperator);
    setContentView(mWorkspace);

1 个答案:

答案 0 :(得分:0)

您可以尝试在调用setContentView之后将textview添加到mWorkspace。

在此之前,可能无法确定屏幕方向,因此无法正确计算缩放比例。

将文本框添加到onStart或onResume也会产生影响,但我发现缩放在onCreate中效果最佳。