[android-developers] When to set android:anyDensity to what value?

2011-04-05 Thread MarcoAndroid
Hello there,

I've read http://developer.android.com/guide/practices/screens_support.html
and
http://groups.google.com/group/android-developers/browse_thread/thread/ed305e5d08f11202/6b8feb7a05d9ef6b
and
http://groups.google.com/group/android-developers/browse_frm/thread/518ee3894af29650
and more related sources.

Still, what and when to set android:anyDensity to I find hard to
figure out.

So, are these conclusions correct:

1- android:anyDensity has been introduced really only for older apps
(1.6 level 4 or lower) because those were most likely built with
hardcoded density-dependent values like 'px'? And apps with level
before 4 even don't understand density dependent resource directories
like res/drawable-hdpi?
By setting android:anyDensity=false, Android tries to scale those
resources that use px values and in 'res/drawable' to match the
device's real screen density.
From level 5 onwards it is a well-known best-practice to always use dp
and sp and density dependend resource directories, so usually apps
take care themselves of being independent using those. And thus
normally for those apps android:anyDensity=true is sufficient (no
auto-density-scaling).

2- If android:anyDensity=false are these density dependend resource
directories plainly ignored as mentioned in this thread?
http://groups.google.com/group/android-developers/browse_frm/thread/518ee3894af29650
But: how does the android:anyDensity=true or false relate to
resources that you might have put in res/drawable-mdpi and res/
drawable-hdpi etc? Does that setting then only have effect for those
density resources you didn't specify in any configuration specific
density-directory, and how?

3- And what if I'm lazy and for any app I make I don't want to create
density specific resources (like images), so only have the 'res/
drawable' dir, but do use dp and sp everywhere... What should
android:anyDensity be set to then? My guess is false so Android will
alwyas scale my resources from 'drawable'...

Regards,
Marco

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


Re: [android-developers] When to set android:anyDensity to what value?

2011-04-05 Thread Dianne Hackborn
Always set it to true...  or better, just make android:targetSdkVersion =
4.  Having it false is only for compatibility with old apps that were
written before there was a concept of density in the APIs.  Using this
compatibility mode can cause some undesirable artifacts such as text metrics
being slightly inconsistent with actual rendering.

On Tue, Apr 5, 2011 at 1:42 PM, MarcoAndroid marco...@gmail.com wrote:

 Hello there,

 I've read
 http://developer.android.com/guide/practices/screens_support.html
 and

 http://groups.google.com/group/android-developers/browse_thread/thread/ed305e5d08f11202/6b8feb7a05d9ef6b
 and

 http://groups.google.com/group/android-developers/browse_frm/thread/518ee3894af29650
 and more related sources.

 Still, what and when to set android:anyDensity to I find hard to
 figure out.

 So, are these conclusions correct:

 1- android:anyDensity has been introduced really only for older apps
 (1.6 level 4 or lower) because those were most likely built with
 hardcoded density-dependent values like 'px'? And apps with level
 before 4 even don't understand density dependent resource directories
 like res/drawable-hdpi?
 By setting android:anyDensity=false, Android tries to scale those
 resources that use px values and in 'res/drawable' to match the
 device's real screen density.
 From level 5 onwards it is a well-known best-practice to always use dp
 and sp and density dependend resource directories, so usually apps
 take care themselves of being independent using those. And thus
 normally for those apps android:anyDensity=true is sufficient (no
 auto-density-scaling).

 2- If android:anyDensity=false are these density dependend resource
 directories plainly ignored as mentioned in this thread?

 http://groups.google.com/group/android-developers/browse_frm/thread/518ee3894af29650
 But: how does the android:anyDensity=true or false relate to
 resources that you might have put in res/drawable-mdpi and res/
 drawable-hdpi etc? Does that setting then only have effect for those
 density resources you didn't specify in any configuration specific
 density-directory, and how?

 3- And what if I'm lazy and for any app I make I don't want to create
 density specific resources (like images), so only have the 'res/
 drawable' dir, but do use dp and sp everywhere... What should
 android:anyDensity be set to then? My guess is false so Android will
 alwyas scale my resources from 'drawable'...

 Regards,
 Marco

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




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