Thanks for the pointer.

The problem then becomes one of duplication. I have to support Android
1.5 as well as 1.6+, so is there a way of avoiding having copies in
drawables and drawables-nodpi?

Al.

On Jul 12, 5:29 pm, Dianne Hackborn <hack...@android.com> wrote:
> For compatibility reasons, bitmaps in the folder that doesn't specify a dpi
> ("drawable") are assumed to be mdpi, and will thus be scaled if used in a
> different density screen.  If you want a bitmap but that does not scale
> based on density, use "drawable-nodpi".
>
>
>
>
>
> On Mon, Jul 12, 2010 at 9:26 AM, Al Sutton <a...@funkyandroid.com> wrote:
> > I'd like to know if someone can tell me if this is intended behaviour for a
> > reason, or just a long standing bug thats in 1.6 and above;
>
> > In a nutshell; I have a layout which has four ImageButtons and three sets
> > of four icons located in the drawables folder (1 icon per button per screen
> > size out of QVGA, HVGA, WVGA).  If I programatically try to set the button
> > to set the ImageButtons image Android will ignore any maximum size I
> > programatically specify and scale the ImageButton up beyond the size of the
> > icons & the specified maximum size.
>
> > For those who are more comfortable in code; my manifest contains;
>
> >        <uses-sdk                       android:minSdkVersion="3"
> >                                                android:targetSdkVersion="4"
> > />
> >        <supports-screens       android:largeScreens="true"
> >                                                android:normalScreens="true"
> >                                                android:smallScreens="true"
> >                                                android:anyDensity="true"/>
>
> > and I have;
>
> >        layout/buttonbar.xml
>
> > which contains serval instances of;
>
> >    <ImageButton        android:id="@+id/button"
> >                        android:layout_width="wrap_content"
> >                        android:layout_height="wrap_content"
> >                        android:background="@android:color/transparent"
> >                        android:scaleType="center"
> >                        android:layout_weight="0"/>
>
> > I also have;
>
> >        drawable/ic_button_small.png                    (a 32x32 icon)
> >        drawable/ic_button_medium.png           (a 48x48 icon)
> >        drawable/ic_button_large.png                    (a 64x64 icon)
>
> > The problem is, if I, in onCreate for an activity, on a hdpi WVGA device
> > (e.g. the Nexus One), do;
>
> >        final ImageButton button = (ImageButton)
> > activity.findViewById(R.id.button);
> >        button.setMaxHeight(64);
> >        button.setMaxWidth(64);
> >        button.setImageResource(R.drawable.ic_button_large);
>
> > the each button gets scaled up to be 96x96 (and looks very ugly).
>
> > If, however, I copy all of the icons into drawable-hdpi, all of the buttons
> > are correctly sized at 64x64.
>
> > To me the icons should not be scaled up for three reasons;
>
> > 1) The maximum size of the button was specified as 64x64, and so shouldn't
> > be scaled up to 96x96.
> > 2) The manifest declares anydenisty, and so UI elements shouldn't be scaled
> > by the OS.
> > 3) The drawable directory does not specify which densities the icons are
> > for, therefore the OS shouldn't assume they're mdpi icons which need scaling
> > on a hdpi device.
>
> > What do other people think?
>
> > Al.
>
> > --
>
> > * Looking for Android Apps? - Tryhttp://andappstore.com/*
>
> > ======
> > Funky Android Limited is registered in England & Wales with the company
> > number  6741909.
>
> > The views expressed in this email are those of the author and not
> > necessarily those of Funky Android Limited, it's associates, or it's
> > subsidiaries.
>
> > --
> > 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<android-developers%2Bunsubs 
> > cr...@googlegroups.com>
> > For more options, visit this group at
> >http://groups.google.com/group/android-developers?hl=en
>
> --
> Dianne Hackborn
> Android framework engineer
> hack...@android.com
>
> Note: please don't send private questions to me, as I don't have time to
> provide private support, and so won't reply to such e-mails.  All such
> questions should be posted on public forums, where I and others can see and
> answer them.

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