如何在android中的xml文件中使用获取的宽度和高度?

时间:2012-11-22 09:19:18

标签: android android-layout

我以编程方式确定了屏幕的宽度和高度。现在我想在我的xml文件中使用那个宽度和高度。请给我一个实现这一目标的方法。

这是我的Activity类。

 public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        DisplayMetrics display = this.getResources().getDisplayMetrics(); 
        float width = display.widthPixels;
        float height = display.heightPixels;
        Toast.makeText(TestProjectActivity.this, "width and height is: "+width + ": "+height, Toast.LENGTH_LONG).show();

        float w = convertPixelsToDp(width, this);
        float h = convertPixelsToDp(height, this);

        Toast.makeText(TestProjectActivity.this, "DP" +w+":  "+h, Toast.LENGTH_LONG).show();
    }

    public static float convertPixelsToDp(float px,Context context){
        Resources resources = context.getResources();
        DisplayMetrics metrics = resources.getDisplayMetrics();
        float dp = px / (metrics.densityDpi / 160f);
        return dp;
    }

现在我想将 w b 发送到xml,以便进一步完成工作。

任何帮助都会被高估吗? 感谢。

1 个答案:

答案 0 :(得分:0)

您无法将信息传递回XML。最多,您可以使用findViewById获取窗口小部件,然后以编程方式设置窗口小部件大小。

  

我正在开发在任何屏幕设备上运行的应用程序。所以屏幕尺寸问题。如果我将textview的宽度设置为200dp,那么它在我的设备中确定,但在其他设备上,它不会出现。所以我只想要一种方法,我可以在我的XML中使用上面检测到的宽度和高度

然后,您应该使用LinearLayout为图片提供相对于可用宽度的尺寸(例如屏幕宽度的百分比

以下是您的XML外观(伪代码)

LinearLayout (layout_width: match_parent, layout_height: wrap_content)
  ImageView (layout_width: 0dip, layout_height: wrap_content, layout_weight: 50)
  ImageView (layout_width: 0dip, layout_height: wrap_content, layout_weight: 50)

在上面的示例中,无论像素数是多少,每个图像视图都将占据屏幕宽度的50%。

我认为你需要谷歌一个关于Android布局的好教程。