Android - 检测小平板电脑与大手机?

时间:2012-04-09 22:02:17

标签: android tablet screen-size android-screen-support

我开发的应用程序包含2个独立的布局:一个用于普通手机,另一个用于小型平板电脑,如NOOKcolor。根据屏幕宽度分辨率(当前600dip)做出的决定。它在Nook看起来很棒但在HTC Rezound上看起来很糟糕,它有一个720 x 1280的显示屏。在后一种情况下,无论分辨率越高,所有内容(文本,图像等)看起来都要大得多,因此它会全部聚集起来。

选择合适设备的好方法是什么?也许检测物理尺寸(4.3" vs 7")vs分辨率?

2 个答案:

答案 0 :(得分:4)

使用以下方法检测设备的屏幕尺寸:

    /**
     * Checks if the screen size is equal or above given length
     * @param activity activity screen
     * @param screen_size diagonal size of screen, for example 7.0 inches
     * @return True if its equal or above, else false
     */
    public static boolean checkScreenSize(Activity activity, double screen_size)
    {
        Display display = activity.getWindowManager().getDefaultDisplay();
        DisplayMetrics displayMetrics = new DisplayMetrics();
        display.getMetrics(displayMetrics);

        int width = displayMetrics.widthPixels / displayMetrics.densityDpi;
        int height = displayMetrics.heightPixels / displayMetrics.densityDpi;

        double screenDiagonal = Math.sqrt( width * width + height * height );
        return (screenDiagonal >= screen_size );
    }

答案 1 :(得分:1)

查看Supporting Multiple Screens的文档。您可以遵循预定的文件夹命名结构,以便Android将为不同的屏幕尺寸/密度加载不同的布局和绘图。

例如:

res/layout/my_layout.xml             // layout for normal screen size ("default")
res/layout-small/my_layout.xml       // layout for small screen size
res/layout-large/my_layout.xml       // layout for large screen size
res/layout-xlarge/my_layout.xml      // layout for extra large screen size
res/layout-xlarge-land/my_layout.xml // layout for extra large in landscape orientation

res/drawable-mdpi/my_icon.png        // bitmap for medium density
res/drawable-hdpi/my_icon.png        // bitmap for high density
res/drawable-xhdpi/my_icon.png       // bitmap for extra high density