Android 具有12个圆形/圆形按钮的布局,用于不同的分辨率/屏幕尺寸

Android 具有12个圆形/圆形按钮的布局,用于不同的分辨率/屏幕尺寸,android,android-layout,screen-resolution,screen-size,android-screen-support,Android,Android Layout,Screen Resolution,Screen Size,Android Screen Support,我需要一个布局,分布12个圆形按钮(圆)均匀地在屏幕上 对于圆形,我使用以下命令: <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval" > <solid android:color="@android:color/darker_gray"/> </shape> 作为布局,我使用线性布局(每个按钮的宽度=0,高度=填充,重量=1) 问题

我需要一个布局,分布12个圆形按钮(圆)均匀地在屏幕上

对于圆形,我使用以下命令:

<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval" >
<solid android:color="@android:color/darker_gray"/>
</shape>

作为布局,我使用线性布局(每个按钮的宽度=0,高度=填充,重量=1)

问题是我必须为按钮设置宽度和高度,以获得一个圆形而不是足球形状(椭圆形)


有没有一种方法可以在设置宽度=高度的同时仍然适合不同的屏幕尺寸?

从xml中,无法设置宽度=高度并使其适合不同的屏幕分辨率。但这可以从代码中完成

根据设备宽度、高度和密度,您可以计算布局

大概是这样的:

DisplayMetrics metrics = this.getResources().getDisplayMetrics();
int displayWidth = metrics.widthPixels;
int displayHeight = metrics.heightPixels;
对于屏幕密度,您可以通过以下方式获得:

int density = metrics.density;

在DP中给出布局高度和布局宽度值。并将XML放在所有文件夹中,如layout、layout large、layout xlarge。

我认为在没有多个布局的情况下有一个很好的方法,但我想我会这样做,而不是在代码中设置它。