android检查屏幕分辨率

问题描述 投票:1回答:3

我尝试检查屏幕分辨率我谷歌搜索,我发现一个例子,但我无法检查屏幕resolution.i尝试检查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高度我做错了什么?如果有人知道解决方案,请帮助我谢谢

android screen-resolution
3个回答
0
投票

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

mapimg.requestLayout();

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();

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);
© www.soinside.com 2019 - 2024. All rights reserved.