0

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

这是我的活动课。

 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;
    }

现在我想将wand发送b到 xml 以进行进一步的工作。

有什么帮助会得到帮助吗?谢谢。

4

1 回答 1

0

您不能将信息传递回 XML。最多,您可以使用您的小部件findViewById,然后以编程方式设置小部件大小。

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

然后你应该使用 aLinearLayout给你的图像一个相对于可用宽度的大小(比如屏幕宽度的百分比

这是您的 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 布局的好教程。

于 2012-11-22T09:32:50.683 回答