この文書の現在のバージョンと選択したバージョンの差分を表示します。
次のリビジョン | 前のリビジョン | ||
android:コードでviewを追加する [2019/11/04 17:31] ips 作成 |
android:コードでviewを追加する [2019/11/04 19:44] (現在) ips |
||
---|---|---|---|
ライン 1: | ライン 1: | ||
====== コードでViewを追加する ====== | ====== コードでViewを追加する ====== | ||
+ | |||
+ | ===== LinearLayoutの場合 ===== | ||
+ | |||
<code> | <code> | ||
ライン 25: | ライン 28: | ||
layout.addView(imagev) | layout.addView(imagev) | ||
| | ||
+ | ・・・ | ||
</code> | </code> | ||
+ | |||
+ | ===== ConstraintLayoutの場合 ===== | ||
+ | |||
+ | <code> | ||
+ | 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) | ||
+ | |||
+ | |||
+ | </code> | ||
+ | |||
+ |