Hi,

I am displaying a grid of icons of all the applications on my device
and I found after I resize them to be all same width and height they
appear on screen some what blurred or foggy .  Also the Icon Text
looks blurred . I have put code snippet below that actually resizing
the icons.

Please let me know if I am missing some thing to make them appear
sharp on screen.

Thanks a lot.
varinag
-------------------------------------------------

 if (!info.filtered) {

            int width = 42;
            int height= 42;

            final int iconWidth = icon.getIntrinsicWidth();
            final int iconHeight = icon.getIntrinsicHeight();

            if (icon instanceof PaintDrawable) {
                PaintDrawable painter = (PaintDrawable) icon;
                painter.setIntrinsicWidth(width);
                painter.setIntrinsicHeight(height);
            }

            if (width > 0 && height > 0 && (width < iconWidth ||
height < iconHeight)) {
                final float ratio = (float) iconWidth / iconHeight;

                if (iconWidth > iconHeight) {
                    height = (int) (width / ratio);
                } else if (iconHeight > iconWidth) {
                    width = (int) (height * ratio);
                }

                final Bitmap.Config c =
                        icon.getOpacity() != PixelFormat.OPAQUE ?
                            Bitmap.Config.ARGB_8888 :
Bitmap.Config.RGB_565;
             //   final Bitmap thumb = Bitmap.createBitmap(80, 80, c);
                final Bitmap thumb = Bitmap.createBitmap(42, 42, c);
                final Canvas canvas = new Canvas(thumb);
                canvas.setDrawFilter(new
PaintFlagsDrawFilter(Paint.DITHER_FLAG, 0));
                // Copy the old bounds to restore them later
                // If we were to do oldBounds = icon.getBounds(),
                // the call to setBounds() that follows would
                // change the same instance and we would lose the
                // old bounds
                mOldBounds.set(icon.getBounds());
               // icon.setBounds(0, 0, 80, 80);
                icon.setBounds(0, 0, width, height);
                icon.draw(canvas);
                icon.setBounds(mOldBounds);
                icon = info.icon = new BitmapDrawable(thumb);
                info.filtered = true;
            }
        }


        final TextView textView = (TextView)
convertView.findViewById(R.id.label);
        textView.setCompoundDrawablesWithIntrinsicBounds(null, icon,
null, null);
        textView.setText(info.title);

        return convertView;
    }

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

Reply via email to