【问题标题】:android check screen resolutionandroid检查屏幕分辨率
【发布时间】:2014-07-24 14:25:08
【问题描述】:

我尝试检查屏幕分辨率 我用谷歌搜索了一个例子,但我无法检查屏幕分辨率。我尝试检查 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


【解决方案1】:

在为已经完成requestLayout() pass 的视图设置高度等参数后,您需要再次请求系统对其进行测量。在 switch 语句的末尾执行此操作:

mapimg.requestLayout();

【讨论】:

  • 我添加了它,但没有改变 :(
  • @user3863447 你能展示你的整个代码吗?我猜您将 wrap_content 作为 xml 中的高度和宽度,这可能会干扰您的视图
【解决方案2】:

你可以像这样得到屏幕尺寸:

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

【讨论】:

  • 谢谢,但我不明白如何在不同的屏幕尺寸下更改图像高度?
  • 对不起,我误解了你的问题
  • 我希望我的 imageview 的高度在大屏幕尺寸(720X1280)下必须为 400,在正常屏幕尺寸(480X800)下必须为 200
  • 您可以创建不同大小的图像资源,并将它们都以相同的名称存储在不同的可绘制文件夹中(每个分辨率一个)您也可以使用维度来表示高度,请参阅:developer.android.com/samples/BasicSyncAdapter/res/values/…跨度>
  • 感谢我知道如何使用不同尺寸的图片,但目前我只有一种尺寸的图片
【解决方案3】:

使用此代码获取屏幕 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);

【讨论】:

  • 谢谢你,我会试试的。但在你的选择中,我的来源有什么问题?我不知道我做错了什么
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多