Stavo lavorando su questo e ho avuto problemi con il codice sopra utilizzando 3.2.2, test su Android. Vari tentativi mi darebbero solo 1, 0 o SIZE per i valori di larghezza e altezza. Questo utilizza un imageView, ma quanto segue mi dà tutto ciò di cui ho bisogno in questo ambiente. Sto anche usando l'evento load invece di postLayout. Spero che questo aiuti qualcuno.
$.map.image = 'http://getyourownimage.com/dev/8fac94c6-872b-4bda-a56a-7dba09188c66.png';
$.map.zIndex = 1;
$.map.width = 'auto';
$.map.height = 'auto';
$.map.addEventListener('load',function(e){
var rect = $.map.getRect();
Ti.API.info(rect.width); //actual width of imageView
Ti.API.info(rect.height); //actual height of imageView
Ti.API.info($.map.getWidth()); //returns auto/SIZE, doesn't work
Ti.API.info($.map.getHeight()); //returns auto/SIZE, doesn't work
Ti.API.info($.map.toImage().width); //some scaled value, not useful
Ti.API.info($.map.toImage().height); //some scaled value, not useful
Ti.API.info($.map.toBlob().width); //image original/full size width
Ti.API.info($.map.toBlob().height); //image original/full size height
alert('rectX:'+rect.width+',rectY:'+rect.height+',mapGW:'+$.map.getWidth()+',mapGH:'+$.map.getHeight()+',tiX:'+$.map.toImage().width+',tiY:'+$.map.toImage().height+',tbX:'+$.map.toBlob().width+',tbY:'+$.map.toBlob().height);
});
fonte
2014-04-01 22:37:16
Non funziona con sdk versione 2.1.1.GA –