2

我有一个 ImageView (original size: 500 x 80) 。我正在改变它的宽度参数,如下所示:

imageView1.getLayoutParams().width=(int) (500.0*width_proc);

当我使用ImageView.getWidth()结果是555,这是完美的。

当我使用时ImageView.getHeight(),结果仍然是 80。即使图像自动重新缩放,它也不会更新为新值。

我试图添加一个Sleep(100),使用ImageView.getViewTreeObserver().addOnGlobalLayoutListener,或添加measure()功能,没有任何效果。

代码如下所示:

...

    @Override    
    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    View myView=this.findViewById(android.R.id.content);
    myView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
              public void onGlobalLayout() {
                  BuildGraphInterface();
             }
          });
    }

...........

public void BuildGraphInterface()
{
   .......
   //================= search 1 ===========================//
    ImageView imageView1 = (ImageView) findViewById(R.id.imageview1);
    imageView1.getLayoutParams().width=(int) (500.0*width_proc);
    imageView1.requestLayout();
    imageView1.invalidate();

    TextView textView1 = (TextView) findViewById(R.id.textview1);
    textView1.setText( " " + imageView1.getHeight() + " " + imageView1.getWidth() );
   .......
}
4

0 回答 0