1 package com.android.test.layout; 2 3 import android.app.Activity; 4 import android.content.Context; 5 import android.os.Build; 6 import android.os.Bundle; 7 import android.view.Gravity; 8 import android.view.View; 9 import android.widget.Button; 10 import android.widget.GridLayout; 11 import android.widget.TextView; 12 13 import static android.widget.GridLayout.ALIGN_BOUNDS; 14 import static android.widget.GridLayout.LayoutParams; 15 import static android.widget.GridLayout.OPTICAL_BOUNDS; 16 17 public class LayoutInsetsTest extends Activity { 18 static int[] GRAVITIES = {Gravity.LEFT, Gravity.LEFT, Gravity.CENTER_HORIZONTAL, Gravity.RIGHT, Gravity.RIGHT}; 19 20 public static View create(Context context) { 21 final int N = GRAVITIES.length; 22 23 GridLayout p = new GridLayout(context); 24 p.setUseDefaultMargins(true); 25 //p.setAlignmentMode(ALIGN_BOUNDS); 26 p.setLayoutMode(OPTICAL_BOUNDS); 27 28 p.setColumnCount(N); 29 30 for (int i = 0; i < 2*N; i++) { 31 View c; 32 if (i % 2 == 0) { 33 TextView tv = new TextView(context); 34 tv.setTextSize(32); 35 tv.setText("A"); 36 c = tv; 37 } else { 38 Button b = new Button(context); 39 b.setBackgroundResource(R.drawable.btn_default_normal); 40 b.setText("B"); 41 c = b; 42 } 43 44 LayoutParams lp = new LayoutParams(); 45 lp.setGravity(GRAVITIES[(i % N)]); 46 p.addView(c, lp); 47 48 } 49 50 51 return p; 52 } 53 54 protected void onCreate(Bundle savedInstanceState) { 55 super.onCreate(savedInstanceState); 56 //getApplicationInfo().targetSdkVersion = Build.VERSION_CODES.ICE_CREAM_SANDWICH; 57 getApplicationInfo().targetSdkVersion = Build.VERSION_CODES.JELLY_BEAN; 58 setContentView(create(this)); 59 } 60 } 61