Android 获取以编程方式创建的ImageView的宽度和高度

Android 获取以编程方式创建的ImageView的宽度和高度,android,imageview,Android,Imageview,我正在使用上的ImageMap小部件。这个扩展imageView的小部件假定图像和地图资源将存储在res/文件夹中,从而在布局xml上设置它们 我想使用SD卡中存储的我自己的资源。因此,我创建了一个构造函数,它同时接收映射文件路径和图像文件路径 这个问题是因为这个小部件需要预先计算imageView的宽度和高度,以便相应地缩放位图。但是以编程方式添加imageView似乎不会触发onSizeChanged事件 我如何解决这个问题 以下是我创建ImageMap的方式: mImageMap = ne

我正在使用上的ImageMap小部件。这个扩展imageView的小部件假定图像和地图资源将存储在res/文件夹中,从而在布局xml上设置它们

我想使用SD卡中存储的我自己的资源。因此,我创建了一个构造函数,它同时接收映射文件路径和图像文件路径

这个问题是因为这个小部件需要预先计算imageView的宽度和高度,以便相应地缩放位图。但是以编程方式添加imageView似乎不会触发onSizeChanged事件

我如何解决这个问题

以下是我创建ImageMap的方式:

mImageMap = new ImageMap(getApplicationContext(),"maps.xml", "/sdcard/media/myimage.jpg");
setContentView(mImageMap, new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.FILL_PARENT, RelativeLayout.LayoutParams.FILL_PARENT));
这就是前面提到的构造器:

public ImageMap(Context context, String mapFile, String imageFile) {
        super(context);
        Bitmap b = BitmapFactory.decodeFile(imageFile);
        this.setImageBitmap(b);

        init();     
        loadMapFromSDCard("maps.xml");
    }

看起来您试图在实际渲染之前获取ImageView的大小,它将返回零。视图大小仅在渲染后定义

可能会解决您的问题,因此您只能在渲染后获得大小
是完整的

因此,在xml定义的情况下,imageview是否在调用构造函数之前实际呈现?