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? - 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 android-developers@googlegroups.com > To unsubscribe from this group, send email to > android-developers+unsubscr...@googlegroups.com<android-developers%2bunsubscr...@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