Re: [android-developers] Re: Listview oddity with imageview

2011-07-23 Thread Simon Platten
I wish I could say it helped but it hasn't.

On Sat, Jul 23, 2011 at 1:27 AM, Abhishek Akhani
abhishek.akh...@gmail.comwrote:

 invalidate the view after rotating... hope this may help...

 --
 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




-- 
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

Re: [android-developers] Re: Listview oddity with imageview

2011-07-22 Thread Kostya Vasilyev
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 

Re: [android-developers] Re: Listview oddity with imageview

2011-07-22 Thread Simon Platten
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 Plattensimonaplat...@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 

Re: [android-developers] Re: Listview oddity with imageview

2011-07-22 Thread Kostya Vasilyev

Your second paragraph below sounds like a view recycling issue.

The emulator and real devices may have some differences there.

-- Kostya

23.07.2011 0:54, Simon Platten пишет:
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.


--
Kostya Vasilyev

--
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