====== コードでViewを追加する ====== ===== LinearLayoutの場合 ===== override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) // setContentView(R.layout.activity_main) これはxmlからlayoutを取得するが、コードで作成したlyaoutからデザインwを作成する // layoutを作成する var layout=LinearLayout(this) layout.orientation=LinearLayout.VERTICAL layout.layoutParams = LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,LinearLayout.LayoutParams.MATCH_PARENT) layout.gravity=Gravity.LEFT // コードで作成したlayoutを設定する setContentView(layout) // コードでimageViewを作成する var imagev = ImageView(this) imagev.setImageResource(R.drawable.man) val layoutParams = LinearLayout.LayoutParams(300,300) imagev.layoutParams=layoutParams // レイアウトにimageViewを追加する layout.addView(imagev) ・・・ ===== ConstraintLayoutの場合 ===== override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) //setContentView(R.layout.activity_main) デフォルトのsetContentViewは使わない // ConstraintLayoutを作る var layout=ConstraintLayout(this) layout.layoutParams = ConstraintLayout.LayoutParams(ConstraintLayout.LayoutParams.MATCH_PARENT,ConstraintLayout.LayoutParams.MATCH_PARENT) // セットする setContentView(layout) // 追加したいViewを作る var imagev = ImageView(this) imagev.setImageResource(R.drawable.man) imagev.id = View.generateViewId() // idを設定する layout.addView(imagev) // ConstraintLayoutに追加したViewを追加する // constraintSet を使ってViewの位置を調整する var constraintSet = ConstraintSet() constraintSet.clone(layout) // android:layout_width="wrap_content" constraintSet.constrainWidth(imagev.id,ConstraintSet.WRAP_CONTENT) //android:layout_height="wrap_content" constraintSet.constrainHeight(imagev.id,ConstraintSet.WRAP_CONTENT) // app:layout_constraintBottom_toBottomOf="parent" constraintSet.connect( imagev.id, ConstraintSet.BOTTOM, ConstraintSet.PARENT_ID, ConstraintSet.BOTTOM, 0) constraintSet.connect( imagev.id, ConstraintSet.TOP, ConstraintSet.PARENT_ID, ConstraintSet.TOP, 0) constraintSet.connect( imagev.id, ConstraintSet.RIGHT, ConstraintSet.PARENT_ID, ConstraintSet.RIGHT, 0 ) constraintSet.connect( imagev.id, ConstraintSet.LEFT, ConstraintSet.PARENT_ID, ConstraintSet.LEFT, 0 ) constraintSet.constrainWidth( imagev.id, 500 ) constraintSet.constrainHeight( imagev.id, 500 ) // constraintSetを適用する constraintSet.applyTo(layout)