【问题标题】:Android : Get Phone Resolution using JAVAAndroid : 使用 JAVA 获取手机分辨率
【发布时间】:2014-01-13 00:50:36
【问题描述】:

我正在设计一个应用程序,它可以根据手机的分辨率更改线性布局的填充... 我为 480*800 的分辨率设计了 XML 文件 这是一个线性布局...我有 5 合 1 页...

   <LinearLayout
        android:id="@+id/layout2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:paddingTop="78dp"
        android:paddingLeft="120dp" >

        <Button
        android:textSize="30dp"
        android:id="@+id/page"
        android:textColor="@android:color/transparent"
        android:background="@android:color/transparent"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Pages" />

    </LinearLayout> 

现在我在 JAVA 文件中使用了这段代码::

l3=(LinearLayout)findViewById(R.id.layout3);
     size = new Point();
  WindowManager w = getWindowManager();

  if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB_MR2)
  {
       w.getDefaultDisplay().getSize(size);

       width = size.x;
       height = size.y; 
  }
  else
  {
       d = w.getDefaultDisplay(); 
       width = d.getWidth(); 
       height = d.getHeight(); 
  }
      height1=(height/800)*113;
width1=(width/480)*14;
l3.setPadding(width1, height1, 0, 0);

但变量宽度和高度的固定值是 480 和 800。 所以获取宽度和高度像素的代码不起作用......请帮助!!!! 我的目标 API 是 8,10 和 17。 请帮助我找到屏幕分辨率(像素)的代码。

【问题讨论】:

  • 我的主要问题是我希望我的应用程序可以在所有手机分辨率下运行...让我解释一下...我有 5 个线性布局...需要在特定位置排列... .我正在使用填充做这个......但是这个填充dp在不同的分辨率下是不同的......我的代码不适用于那个问题......请帮助......

标签: java android padding resolution


【解决方案1】:

http://developer.android.com/reference/android/util/DisplayMetrics.html

你可以按如下方式使用它:

DisplayMetrics displaymetrics = new DisplayMetrics(); 
getWindowManager().getDefaultDisplay().getMetrics(displaymetrics); 
int height = displaymetrics.heightPixels; 
int width = displaymetrics.widthPixels;

密度有

    int densitiy = displaymetrics.densityDpi;

【讨论】:

  • 是的,但我的主要问题是我希望我的应用程序可以在所有手机分辨率下运行...让我解释一下...我有 5 种线性布局...需要安排在特定位置...我正在使用填充来执行此操作...但是此填充 dp 在不同的分辨率下是不同的...我的代码不适用于该问题...请帮助...
  • 你为什么不为每个分辨率制作不同的表单并将你的用户重定向到表单......可能有一个开关盒
【解决方案2】:
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);

final int height = dm.heightPixels;
final int width = dm.widthPixels;

【讨论】:

    猜你喜欢
    • 2012-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-09
    • 1970-01-01
    • 1970-01-01
    • 2012-12-23
    • 2013-01-05
    相关资源
    最近更新 更多