1
我在CatchtheCows上使用ImageMap小部件。这个小部件(它扩展了imageView)假定图像和地图资源将被存储在res /文件夹中,并因此将它们设置在布局xml上。以编程方式创建ImageView的宽度和高度
我想使用我自己的资源存储在SD卡中。所以我创建了一个接收地图文件路径和图像文件路径的构造函数。
问题来了,因为这个小部件需要预先计算imageView的宽度和高度,以相应地缩放位图。但以编程方式添加imageView似乎不会触发onSizeChanged事件。
我该如何解决这个问题?
这是我创造我的图像映射:
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");
}
所以在XML定义的情况下,不会将ImageView的实际得到调用构造函数之前渲染? –