您的位置:首页 > 移动开发 > Android开发

android 获取手机分辨率、状态栏、…

2014-06-14 19:38 387 查看
480-800,480X854的状态栏是38

720-1280 的是56

如何通过代码获取手机屏幕的分辨率,代码其实很简单,关键是android.util.DisplayMetrics这个类。该类记录了一些常用信息,如显示信息、大小、维度、字体等等。

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

DisplayMetrics dm = new DisplayMetrics();

getWindowManager().getDefaultDisplay().getMetrics(dm);

int width = dm.widthPixels;

int height = dm.heightPixels;

Button button = (Button)findViewById(R.id.b01);

button.setText("手机屏幕分辨率为:"+width+"*"+height);

}

Android下获取状态栏的高度

public
static int getStatusHeight(Activity activity){

int statusHeight = 0;

Rect localRect = new Rect();

activity.getWindow().getDecorView(

        ).getWindowVisibleDisplayFrame(localRect);

statusHeight = localRect.top;

if (0 == statusHeight){

Class<?> localClass;

try {

localClass = Class.forName(

            "com.android.internal.R$dimen");

Object localObject = localClass.newInstance();

int i5 = Integer.parseInt(

              localClass.getField("status_bar_height").get(

                localObject).toString());

statusHeight = activity.getResources(

            ).getDimensionPixelSize(i5);

} catch (ClassNotFoundException e) {

e.printStackTrace();

} catch (IllegalAccessException e) {

e.printStackTrace();

} catch (InstantiationException e) {

e.printStackTrace();

} catch (NumberFormatException e) {

e.printStackTrace();

} catch (IllegalArgumentException e) {

e.printStackTrace();

} catch (SecurityException e) {

e.printStackTrace();

} catch (NoSuchFieldException e) {

e.printStackTrace();

}

}

return statusHeight;

}

用以上代码测试了下小米手机1(480X854)的状态栏的高度是:38
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: