我尝试检查屏幕分辨率我谷歌搜索,我发现一个例子,但我无法检查屏幕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高度我做错了什么?如果有人知道解决方案,请帮助我谢谢
将高度等参数设置为已完成requestLayout()传递的视图后,需要再次请求系统测量它。在switch语句结束时执行此操作:
mapimg.requestLayout();
您可以像这样获得屏幕大小:
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();
使用此代码获取屏幕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);