Android:自然地以线性布局或相对布局等方式包装内容

时间:2014-08-20 23:43:38

标签: android android-layout android-linearlayout relativelayout

Android中是否有自然包装内容的布局?

我显然可以尝试以编程方式测量有多少空间,但我宁愿尽可能地避免这种情况。

这是一个简单的图表。在我的代码中,所有的ImageView都有48dp的固定宽度。显然我不知道会有多少列,否则我会使用表视图或其他东西,所以我正在寻找一些可以在屏幕上显示时自然换行的东西。

高密度屏幕

|            |            |
| ImageView1 | ImageView2 |
|            |            |

中密度屏幕

|            |          
| ImageView1 | 
|            |
--------------
| ImageView2 |  
|            |
|            |           

1 个答案:

答案 0 :(得分:0)

您可以使用GridLayout并使用以下命令在不同的设备密度上为此指定不同的列数:

GridLayout mGridLayout = (GridLayout) findViewById(R.id.myGridLayoutId);

// Do some check of device density and based on result do

DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
....
if(mDensity == metrics.DENSITY_MEDIUM){
    mGridlayout.setColumnCount(1);
}else if(mDensity == metrics.DENSITY_HIGH){

   mGridlayout.setColumnCount(2);
}

请参阅http://developer.android.com/reference/android/util/DisplayMetrics.html

但是没有像Android中的FlowLayout那样可以在Java Swing中使用