我以编程方式确定了屏幕的宽度和高度。现在我想在我的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,以便进一步完成工作。
任何帮助都会被高估吗? 感谢。
答案 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布局的好教程。