我有一个ImageView(原始大小: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() );
.......
}