android检查屏幕分辨率

时间:2014-07-24 14:25:08

标签: android screen-resolution

我尝试检查屏幕分辨率 我google了,我发现了一个例子,但我无法检查屏幕分辨率。我试着检查480X800和720X1280屏幕分辨率

int screenSize = getResources().getConfiguration().screenLayout
            & Configuration.SCREENLAYOUT_SIZE_MASK;
    switch (screenSize) {
    case Configuration.SCREENLAYOUT_SIZE_LARGE:

        mapimg.getLayoutParams().height = 400;

        break;
    case Configuration.SCREENLAYOUT_SIZE_NORMAL:

        mapimg.getLayoutParams().height = 200;
        break;
    case Configuration.SCREENLAYOUT_SIZE_SMALL:

        break;
    default:
    }

布局

 <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_above="@+id/relativeLayout1"
        android:layout_alignParentLeft="true" >

        <ImageView
            android:id="@+id/mapimages"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
             />

        <com.google.android.gms.maps.MapView
            android:id="@+id/pointMap"
            android:name="com.google.android.gms.maps.MapFragment"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_below="@+id/mapimages"
            class="com.google.android.gms.maps.MapFragment" >
        </com.google.android.gms.maps.MapView>
    </RelativeLayout>

这是我的代码 我尝试我的imageview的高度将在相同的屏幕分辨率 在480X800高度200和720X1280 400 当我在两个屏幕分辨率下运行程序时,imageview有200个高度 我究竟做错了什么?如果有人知道解决方案,请帮助我 感谢

3 个答案:

答案 0 :(得分:0)

将高度等参数设置为已经完成requestLayout()传递的视图后,您需要再次请求系统测量它。在switch语句结束时执行此操作:

mapimg.requestLayout();

答案 1 :(得分:0)

您可以像这样获得屏幕大小:

Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int width = size.x;
int height = size.y;

如果您不是通过以下活动执行此操作,则不会这样做:

WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
Display display = wm.getDefaultDisplay();

答案 2 :(得分:0)

将此代码用于获取屏幕dp

Display display = getWindowManager().getDefaultDisplay();
    DisplayMetrics outMetrics = new DisplayMetrics ();
    display.getMetrics(outMetrics);
    float density  = getResources().getDisplayMetrics().density;
    float dpHeight = outMetrics.heightPixels / density;
    float dpWidth = outMetrics.widthPixels / density;

并使用以下行设置图像宽度和高度:

 LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(
          dpWidth/2,dpHeight/2);
          image.setLayoutParams(lp);