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 <[email protected]> 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? - Try http://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 [email protected]
> To unsubscribe from this group, send email to
> [email protected]<android-developers%[email protected]>
> For more options, visit this group at
> http://groups.google.com/group/android-developers?hl=en
>
--
Dianne Hackborn
Android framework engineer
[email protected]
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 [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