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

时间:2013-09-09 14:28:52

标签: android android-layout

我的Android应用程序适用于Gingerbread及以上版本。它创建图形和文本表的屏幕输出。每个都是方形的,并使用imageview绘制。它们与布局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的方形尺寸可以提供良好的显示效果,从而可以充分利用可用的屏幕空间。在纵向模式下,使用高度/ 2效果不佳:第二个绘制的正方形尺寸减小。所以我将高度减少10%然后除以2得到方形尺寸。这有效,但没有充分利用可用空间。有什么建议吗?

1 个答案:

答案 0 :(得分: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>