You are not calling rotateThumbnail() in getView(). On Sat, Jul 2, 2011 at 9:39 AM, Simon Platten <[email protected]> wrote: > I believe thats exactly what I'm doing: > > public View getView(int position, > View convertView, > ViewGroup parent) { > View v = convertView; > > if (v == null) { > LayoutInflater vi = > (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE); > v = vi.inflate(R.layout.lvimages, null); > } > imgFile ii = m_aryImages.get( position ); > > if ( ii != null ) { > Bitmap bmpData = BitmapFactory.decodeFile(ii.getFilename()); > int intScaledWidth = clsWallpaper.m_intScrWidth / 2; > float fltAspectRatio = (float)bmpData.getHeight() / > (float)bmpData.getWidth(); > int intScaledHeight = (int)((float)intScaledWidth * > fltAspectRatio); > Bitmap bmpResized = Bitmap.createScaledBitmap( bmpData, > > intScaledWidth, > > intScaledHeight, > false ); > Drawable drwThumbnail = new BitmapDrawable(bmpResized); > ImageView ivThumbnail = > (ImageView)v.findViewById(R.id.ivthumbNail); > ivThumbnail.setBackgroundDrawable(drwThumbnail); > ii.setThumbnail(ivThumbnail); > // Get the image file name > TextView tvFilename = > (TextView)v.findViewById(R.id.tvFilename); > // Remove the path from the file name > String strFile = ii.getFilename(); > int intIdx = strFile.lastIndexOf(File.separator); > > if ( intIdx >= 0 ) { > strFile = strFile.substring( intIdx + 1 ); > } > tvFilename.setText(strFile); > // Rotation images > ii.setIndex( position ); > ii.setupCCW(v.findViewById(R.id.btnCCW)); > ii.setupCW(v.findViewById(R.id.btnCW)); > } > return v; > } > > The methods setupCCW and setupCW add listeners to the buttons: > > public void setupCCW(View v) { > m_ibtnCCW = (ImageButton)v; > > m_ibtnCCW.setOnClickListener(new OnClickListener() { > @Override > public void onClick(View v) { > try{ > rotateThumbnail(ROTATE_CCW); > } catch( Exception ex ) { > Log.e( TAG, "setOnClickListener", ex ); > } > } > }); > } > > Here is the code for rotateThumbnail(): > > public void rotateThumbnail(int intRotation) { > try{ > if ( intRotation == ROTATE_CW ) { > m_intAngle = 90; > } else if ( intRotation == ROTATE_CCW ) { > m_intAngle = -90; > } > if ( m_intAngle != 0 ) { > // Rotating Bitmap > Drawable drwImg = m_ivThumbnail.getBackground(); > Bitmap bmpThumbnail = ((BitmapDrawable)drwImg).getBitmap(); > Matrix mtx = new Matrix(); > mtx.setRotate(m_intAngle, > bmpThumbnail.getWidth() / 2, > bmpThumbnail.getHeight() / 2); > bmpThumbnail = Bitmap.createBitmap(bmpThumbnail, > 0, 0, > bmpThumbnail.getWidth(), > bmpThumbnail.getHeight(), > mtx, true); > Drawable drwRotated = new BitmapDrawable(bmpThumbnail); > m_ivThumbnail.setBackgroundDrawable(drwRotated); > > if ( m_intAngle < 0 && m_intTotalAngle == 0 ) { > m_intTotalAngle = 360; > } > m_intTotalAngle = (m_intTotalAngle + m_intAngle) % 360; > } > } catch( Exception ex ) { > Log.e( TAG, "rotateThumbnail", ex ); > } > } > > > As I said in my first post when the buttons are pressed the image is > rotated, but it reverts back to its original state when it goes out of view. > > > On 02/07/2011 2:20 PM, Mark Murphy wrote: >> >> On Sat, Jul 2, 2011 at 9:07 AM, Simon Platten >> <[email protected]> wrote: >>> >>> I have a listview which has an ImageView in each item and a couple of >>> buttons. The buttons allow the user to rotate the image clockwise and >>> counter clockwise by 90 degrees on each press. This works find and the >>> ImageView is rotated, however if I scroll the item off view, when I >>> scroll >>> it back into view the orginal image is restored without any rotation >>> applied, is there a notification that I can get when the item comes into >>> view so I can correct the image >> >> You are already overriding getView(), presumably. That is where you >> apply your rotation. >> >>> or....can I modifiy the original ImageView >>> in the list view directly? >> >> You are already overriding getView(), presumably. That is where you >> are modifying "the original ImageView", so that is where you apply >> your rotation. >> > > -- > You received this message because you are subscribed to the Google > Groups "Android Developers" group. > To post to this group, send email to [email protected] > To unsubscribe from this group, send email to > [email protected] > For more options, visit this group at > http://groups.google.com/group/android-developers?hl=en >
-- Mark Murphy (a Commons Guy) http://commonsware.com | http://github.com/commonsguy http://commonsware.com/blog | http://twitter.com/commonsguy _Android Programming Tutorials_ Version 3.5 Available! -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/android-developers?hl=en

