如何获得设置为match_parent的imageView的大小?

时间:2012-12-20 15:16:23

标签: android imageview

所以我在listview中有一个imageView(由Loader加载),宽度设置为match_parent。当我想设置imageview位图时,我使用imageView的高度和宽度来加载最佳大小的位图。问题是imageView大小有时在Loader bindView中未知(尚未测量?)。在这种情况下,我怎样才能获得每次位图的宽度?

@Override
    public void bindView(View view, final Context context, Cursor cursor) {
        ImageView iv = (ImageView) (ImageView) view.findViewById(R.id.image);
        ....
        bitmap = BitmapHelper.decodeSampledBitmapFromFile( new File(file), iv.getWidth(), iv.getHeight());
        imageView.setImageBitmap(bitmap);
    }

1 个答案:

答案 0 :(得分:1)

您必须等到视图初始化,然后获取尺寸。尝试使用像这样的ViewObserver:

ViewTreeObserver viewTreeObserver = YOURLAYOUT.getViewTreeObserver();
if (viewTreeObserver.isAlive()) {
   viewTreeObserver.addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
          public void onGlobalLayout() {
             YOURLAYOUT.getViewTreeObserver().removeGlobalOnLayoutListener(this);
             //do some things
             //YOURLAYOUT.getWidth() should give a correct answer
          }
   });
}

希望有所帮助:)