我有一个 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() );
.......
}