レイアウト

FrameLayout、LinearLayout、RelativeLayout、TableLayoutがあります。
レイアウトをXMLで設定する方法と、コードで設定する方法があります。

XMLで設定


res/layout/activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:tools="http://schemas.android.com/tools"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   android:orientation="vertical"
   android:background="@android:color/black" >

  <TextView
       android:id="@+id/textView"
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:layout_weight="1"
       android:background="@android:color/white" />

  <Button
       android:id="@+id/btn"
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:text="ボタン" />
</LinearLayout>


Activity

※packageとimportの宣言は省略。
public class MainActivity extends Activity implements View.OnClickListener {
  private TextView textView;

  @Override
   public void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.activity_main);

      textView = (TextView) findViewById(R.id.textView);
       textView.setText("あいうえお");

      Button button = (Button) findViewById(R.id.btn);
       button.setOnClickListener(this);
   }

  public void onClick(View v) {
       switch (v.getId()) {
           case R.id.btn:
               Toast.makeText(this, textView.getText().toString(), Toast.LENGTH_LONG).show();
               break;
       }
   }
}


備考

  • match_parentはfill_parentとも書けますが、後者はAndroid 2.2以降は非推奨となっています。
  • wrap_contentは0dipと書くほうがパフォーマンスが良いという警告が出るので、そうしたほうが良さそうです。


コードで設定


Activity

※packageとimportの宣言は省略。
public class MainActivity extends Activity implements View.OnClickListener {
  private TextView textView;
   static final int BUTTON_ID = 1;

  @Override
   public void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);

      textView = new TextView(this);
       textView.setText("あいうえお");
       textView.setBackgroundColor(Color.WHITE);

      Button button = new Button(this);
       button.setId(BUTTON_ID);
       button.setText("ボタン");
       button.setOnClickListener(this);

      LinearLayout ll = new LinearLayout(this);
       ll.setOrientation(LinearLayout.VERTICAL);
       ll.setBackgroundColor(Color.BLACK);
       setContentView(ll);

      LayoutParams lp1 = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT, 1);
       ll.addView(textView, lp1);

      LayoutParams lp2 = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
       ll.addView(button, lp2);
   }

  public void onClick(View v) {
       switch (v.getId()) {
           case BUTTON_ID:
               Toast.makeText(this, textView.getText().toString(), Toast.LENGTH_LONG).show();
               break;
       }
   }
}


備考

  • XMLで設定する場合と同様に、LayoutParams.WRAP_CONTENTを0にしたほうがパフォーマンスが良いようです。


参考資料




コメントを投稿するには画像の文字を半角数字で入力してください。


画像認証

  • 最終更新:2013-07-18 15:23:26

このWIKIを編集するにはパスワード入力が必要です

認証パスワード