2011-12-26 11 views
8

ImageViewを作成せずに.pngの高さを得る方法はありますか?チタン:ImageViewを作成せずにpngの高さを取得

私がGoogleで見つけたメソッドは、まずcreateImageViewを必要とし、次に.heightを実行します。

ImageViewの作成を避けたいのは、pngの高さを取得していくつかの変更を行った後にcreateImageViewに行くためです。

また、var imagevariablename = Ti.UI.createImageView自体で高さの値を使用するので、imagevariablenameの宣言がまだ行われていないためimagevariablename.heightを使用できません。

答えて

6

私は、チタンのimageViewを作成せずに画像の高さ/幅を取得する方法がわかりません。私のアプリでは、一時的なイメージビューを作成し、それをビュー/ウィンドウに追加することなく属性を読み込みます。あなたのサイズを知っていれば、あなたは「本当の」画像ビューを作成することができます

var imageTemp = Ti.UI.createImageView({ 
    image : someFile.read(), 
    height:'auto', 
    width:'auto' 
}); 
Ti.API.info("height=" + imageTemp.size.height); 
Ti.API.info("width=" + imageTemp.size.width); 
imageTemp = null; 
+0

sdkバージョン2.1.1で動作しません.GA –

1

を、あなたのイメージからのBlobを作成する場合は、チタンのドキュメントからBLOB

から幅と高さを得ることができます。 場合このブロブはイメージを表し、これはピクセル単位のイメージの高さです。

4

がこのように実行された私の状態では、このコードに

var imageTemp = Ti.UI.createImageView({ 
    image : <image>, 
    height:'auto', 
    width:'auto' 
}), 
imageSize = imageTemp.toImage(); 

Ti.API.info("height=" + imageSize.height); 
Ti.API.info("width=" + imageSize.width); 

imageTemp = imageSize = null; 
1

を試してみてください。

var imageTemp = Ti.UI.createImageView({ 
    image : someFile.read(), 
    height:'auto', 
    width:'auto' 
}); 
alert("height=" + imageTemp.toBlob().height); 
alert("width=" + imageTemp.toBlob().width); 
imageTemp = null; 
1

私はこのために作業していましたが、Androidでテストしている3.2.2を使用して上記のコードに問題がありました。様々な試みは、幅と高さの値に対して1,0、SIZEを与えるだけです。これはimageViewを使用していますが、この環境で必要なものはすべて次のようになります。私はまた、postLayoutの代わりにloadイベントを使用しています。うまくいけば、これは誰かを助けるでしょう

$.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); 
}); 
関連する問題