2

我的 Android 应用适用于 Gingerbread 及更高版本。它创建图形和文本表的屏幕输出。每个都是方形的,并使用图像视图绘制。这些与布局 xml 一起放置在线性布局中。我希望正方形大小相同且尽可能大。在纵向模式下,它们是堆叠的,而在横向模式下,它们是并排的。该应用程序没有绘制任何其他内容。

我使用这段代码来了解要绘制什么大小的正方形:

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

……

landscape=width>height;
//use fudge factor for vertical display (account for title bar, etc.)
if (!landscape) 
    graphSize=(int) (0.9f*(float)height/2.0f);//reduce by 10%
if (landscape) 
    graphSize=width/2;

我使用 graphSize 来设置输出的图像视图的大小。

认识到指标提供的宽度和高度仅给出了一个近似值(出于多种原因,我不想进入),我只是在调整正方形大小时将高度减少了一个软糖因子。在横向模式下,使用超过 2 的宽度作为正方形大小可以提供良好的显示效果,从而很好地利用了可用的屏幕空间。在纵向模式下,使用 height/2 效果不佳:第二个绘制的正方形的尺寸减小了。所以我将高度降低 10%,然后除以 2 得到正方形大小。这可行,但不能很好地利用可用空间。有什么建议么?

4

1 回答 1

0

可能是你想要这样的东西:

<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>
于 2013-09-09T16:59:41.450 回答