我尝试检查屏幕分辨率 我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个高度 我究竟做错了什么?如果有人知道解决方案,请帮助我 感谢
答案 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);