DIP for gui on android

Any way to compute density independent pixel size for UIs on android? thanks.

I haven’t done something like this, but i think, you can get screen dpi with android api in java, pass it into your C++ code via JNI, and then scale all your widgets using this variable

What about the google way for that?

Hi, you could pass as an argument to your urho app.


    protected String[] getArguments() {

        // Urho3D: always return the "app_process" as the first argument instead of empty array
        String[] ret = new String[3];
        ret[0] = "app_process";

        String lang = Locale.getDefault().getLanguage();
        ret[1] = lang;

        DisplayMetrics metrics = getResources().getDisplayMetrics();
        String dpi = Float.toString( metrics.xdpi ) + "," + Float.toString( metrics.ydpi );
        ret[2] = dpi;
        return ret;

MyApp.cpp (urho3d application subclass)

#ifdef __ANDROID__
    Urho3D::Vector<Urho3D::String> args = Urho3D::GetArguments();
    if( args.Size() >= 1)
        m_appLang = args[0];
    if( args.Size() >= 2)
        m_screenDPI = args[1];

hope this would help.
Best regards.

Good solution, I think your code can be picked into master branch.