我在CatchtheCows使用 ImageMap 小部件。此小部件(扩展 imageView)假定图像和地图资源将存储在 res/ 文件夹中,因此将它们设置在布局 xml 中。
我想使用存储在 sdcard 中的自己的资源。所以我创建了一个构造函数,它同时接收地图文件路径和图像文件路径。
问题来了,因为这个小部件需要预先计算 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");
}