Android 安卓2.3&;上图:如何在纵向或横向模式下绘制2个最大尺寸的正方形

Android 安卓2.3&;上图:如何在纵向或横向模式下绘制2个最大尺寸的正方形,android,android-layout,Android,Android Layout,我的Android应用程序适用于姜饼及以上。它创建图形和文本表的屏幕输出。每个都是方形的,并使用imageview绘制。它们与布局xml一起单独放置在线性布局中。我希望正方形的大小和尺寸尽可能大。在纵向模式下,它们堆叠在一起;在横向模式下,它们并排放置。应用程序没有绘制任何其他内容 DisplayMetrics metrics = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(metrics);

我的Android应用程序适用于姜饼及以上。它创建图形和文本表的屏幕输出。每个都是方形的,并使用imageview绘制。它们与布局xml一起单独放置在线性布局中。我希望正方形的大小和尺寸尽可能大。在纵向模式下,它们堆叠在一起;在横向模式下,它们并排放置。应用程序没有绘制任何其他内容

DisplayMetrics metrics = new DisplayMetrics(); 
getWindowManager().getDefaultDisplay().getMetrics(metrics); 
height = metrics.heightPixels; 
width = metrics.widthPixels;   
我使用此代码来了解要绘制的正方形的大小:

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

DisplayMetrics metrics = new DisplayMetrics(); 
getWindowManager().getDefaultDisplay().getMetrics(metrics); 
height = metrics.heightPixels; 
width = metrics.widthPixels;   
我使用graphSize为输出设置ImageView的大小

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

认识到度量标准提供的宽度和高度只给出了一个近似值(出于许多原因,我不想深入讨论),在调整正方形大小时,我只是通过一个模糊因子来降低高度。在横向模式下,使用宽度大于2的正方形大小可以提供良好的显示效果,从而可以很好地利用可用的屏幕空间。在纵向模式下,使用height/2效果不佳:第二个绘制的正方形的大小减小。所以我把高度减少10%,然后除以2得到正方形的大小。这可以工作,但不能充分利用可用空间。有什么建议吗?

你可能想要这样的东西:

DisplayMetrics metrics = new DisplayMetrics(); 
getWindowManager().getDefaultDisplay().getMetrics(metrics); 
height = metrics.heightPixels; 
width = metrics.widthPixels;   
<LinearLayout
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 android:weightSum="2">

 <ImageView
    .
    .
    .
    android:layout_weight="1" />

<ImageView
    .
    .
    .
    android:layout_weight="1" />

 </LinearLayout>


LinearLayout中这两个图像视图是否有其他视图尚不清楚。在不知道答案的情况下,我会说制作你自己的适配器。我在线性布局中没有其他视图。只有两个正方形。然后,自定义布局应该可以毫无问题地实现您想要实现的目标。