I've tried all the scale type options, no effect, except that it fixes the width and the height doesn't scale correctly.

It works exactly as I would expect in the emulator, when on my phone it shrinks after rotation, but if I scroll out of view then back into view its ok...very strange.


On 22/07/2011 9:45 PM, Kostya Vasilyev wrote:
Try setting a scaleType property on the ImageView, perhaps you can get
consistent results that way.

2011/7/23 Simon Platten<simonaplat...@googlemail.com>:
Is this a bug or is there a property that needs setting ?

On Fri, Jul 22, 2011 at 7:27 AM, Simon Platten
<simonaplat...@googlemail.com>  wrote:
Has anyone else encountered this problem?

On Thu, Jul 21, 2011 at 7:54 PM, Simon Platten
<simonaplat...@googlemail.com>  wrote:
I have a listview with each item defined as:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android";
                      android:layout_width="fill_parent"

  android:layout_height="?android:attr/listPreferredItemHeight"
                      android:padding="10dp">
     <LinearLayout android:id="@+id/llHeader"
                       android:background="@color/blue"
                       android:orientation="vertical"
                       android:layout_alignParentTop="true"
                       android:layout_width="fill_parent"
                       android:layout_height="fill_parent">
         <CheckBox android:id="@+id/chkUse"
                      android:text="File-name"
                       android:textColor="@color/yellow"
                       android:textStyle="bold"
                      android:layout_width="fill_parent"
                      android:layout_height="wrap_content"
                       android:layout_gravity="left" />
     </LinearLayout>
     <ImageView android:id="@+id/ivthumbNail"
                   android:src="@drawable/placeholder"
                   android:layout_centerHorizontal="true"
                   android:layout_below="@+id/llHeader"
                   android:layout_width="fill_parent"
                   android:layout_height="fill_parent" />
     <ImageButton android:id="@+id/btnCCW"
                      android:src="@drawable/ccw_rotate_btn"
                     android:layout_alignLeft="@+id/llHeader"
                        android:layout_below="@+id/llHeader"
                      android:layout_width="48dip"
                     android:layout_height="48dip" />
     <ImageButton android:id="@+id/btnCW"
                      android:src="@drawable/cw_rotate_btn"
                     android:layout_alignRight="@+id/llHeader"
                     android:layout_below="@+id/llHeader"
                      android:layout_width="48dip"
                     android:layout_height="48dip" />
</RelativeLayout>


This gives a title / checkbox, under this is an imageview with a button
either side of it.  With the buttons I can rotate the image clockwise or
counter clockwise by 90 degrees, the routine that performs the rotation and
scaling of the images:

     public Bitmap scaleAndRotateImage(boolean blnShow) {
         try{
             BitmapFactory.Options bfo = new BitmapFactory.Options();
             bfo.inSampleSize = 4;
             Bitmap bmpData = BitmapFactory.decodeFile(m_strFilename,
bfo);

             if ( m_intOriginalWidth == 0&&  m_intOriginalHeight == 0 ) {
                 m_intOriginalWidth = bmpData.getWidth();
                 m_intOriginalHeight = bmpData.getHeight();
                 int intScaledWidth = clsWallpaper.m_intScrWidth;
                 float fltAspectRatio = (float)bmpData.getHeight() /
(float)bmpData.getWidth();
                 int intScaledHeight = (int)((float)intScaledWidth *
fltAspectRatio);
                 m_fltScaleWidth = ((float)intScaledWidth) /
((float)m_intOriginalWidth);
                 m_fltScaleHeight = ((float)intScaledHeight) /
((float)m_intOriginalHeight);
             }
// Apply the scale to the matrix
             Matrix mtx = new Matrix();
             mtx.postScale(m_fltScaleWidth, m_fltScaleHeight);
// Apply the rotation angle to the matrix
             mtx.postRotate(m_intTotalAngle);
// Get the scaled and maybe rotated version of the bitmap
             Bitmap bmpScaled = Bitmap.createBitmap(bmpData,
                                                     0, 0,
                                                     m_intOriginalWidth,
                                                     m_intOriginalHeight,
                                                     mtx, true);
             if ( blnShow == true&&  bmpScaled != null ) {
                 m_drwThumbnail = new BitmapDrawable(bmpScaled);
                 Activity a = (Activity)m_ivThumbnail.getContext();
                 a.runOnUiThread(updateThumbnail);
             }
             return bmpScaled;
         } catch( Exception ex ) {
             Log.e( TAG, "rotateThumbnail", ex );
         }
         return null;
     }

The strange this is when the image is rotated the scaled version is
smaller than it is supposed to be, if I scroll the listview so the item goes
out of view then scroll it back into view the item comes back with the image
of the correct size.  Is they're anything I can do about this?
--
Regards,
Sy



--
Regards,
Sy



--
Regards,
Sy

--
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

--
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to