Uploaded image for project: 'Titanium SDK/CLI'
  1. Titanium SDK/CLI
  2. TIMOB-10358

Android: ImageView parity for scaling behavior

    Details

    • Sprint:
      Release 3.0.0

      Description

      While testing for parity on current scaling behavior of imageViews on Android, noticed all kinds of layout issues. Basically if an image is loaded with auto width and height and then the width and height properties are specifically overwritten, setting the width and height back to auto does not return image to original dimensions. Had similar issues with IOS which were fixed as part of TIMOB-3749

      IOS behavior is as follows. If either width or height of image view are set to follow SIZE behavior('auto',Ti.UI.SIZE,undefined) then the image is scaled with aspect ratio intact. Otherwise the image is scaled ignoring aspect ratio.

      Test case is below

      var win = Ti.UI.createWindow({
          backgroundColor:'#fff',
          layout:'vertical'
      });
       
      var image = Ti.UI.createImageView({ 
          image: "http://www.catravelservices.com/management/hotels/pictures/Mawamba_lodge_nature.jpg", 
          backgroundColor : "red" 
      });
       
       
      var label = Ti.UI.createLabel({
          text:'Results Here'
      })
       
      var updateLabel = function(){
          var size = image.size;
          label.text = 'ImageView size is '+size.width+'x'+size.height;
      }
       
      var controlsContainer = Ti.UI.createView({
          height:Ti.UI.SIZE
      })
       
      var widthControls = Ti.UI.createView({
          width:'50%',
          layout:'vertical',
          left:0,
          height:Ti.UI.SIZE
      })
       
      var heightControls = Ti.UI.createView({
          width:'50%',
          layout:'vertical',
          right:0,
          height:Ti.UI.SIZE
      })
       
      controlsContainer.add(widthControls);
      controlsContainer.add(heightControls);
       
      var b1 = Ti.UI.createButton({title:'WIDTH=SIZE'})
      var b2 = Ti.UI.createButton({title:'WIDTH=165'})
      var b3 = Ti.UI.createButton({title:'WIDTH=250'})
      var b4 = Ti.UI.createButton({title:'HEIGHT=SIZE'})
      var b5 = Ti.UI.createButton({title:'HEIGHT=50'})
      var b6 = Ti.UI.createButton({title:'HEIGHT=165'})
      b1.addEventListener('click',function(e){
          image.width=Ti.UI.SIZE;
          setTimeout(updateLabel,500);
      })
      b2.addEventListener('click',function(e){
          image.width=165;
          setTimeout(updateLabel,500);
      })
      b3.addEventListener('click',function(e){
          image.width=250;
          setTimeout(updateLabel,500);
      })
      b4.addEventListener('click',function(e){
          image.height=Ti.UI.SIZE;
          setTimeout(updateLabel,500);
      })
      b5.addEventListener('click',function(e){
          image.height=50;
          setTimeout(updateLabel,500);
      })
      b6.addEventListener('click',function(e){
          image.height=165;
          setTimeout(updateLabel,500);
      })
      win.add(image);
      widthControls.add(b1);
      widthControls.add(b2);
      widthControls.add(b3);
      heightControls.add(b4);
      heightControls.add(b5);
      heightControls.add(b6);
      win.add(controlsContainer);
      win.add(label)
      win.open();
      

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                ayeung Allen Yeung
                Reporter:
                vduggal Vishal Duggal (Inactive)
                Reviewer:
                Vishal Duggal (Inactive)
              • Watchers:
                0 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved:

                  Backbone Issue Sync

                  • Titanium SDK/CLI <> Titanium Mobile
                    Synced with:
                    TIMOB-5663
                    Sync status:
                    ERROR
                    Last received:
                    Last sent:

                    Git Integration