- 如何访问资源
在layout布局中:使用@
代码中:context.getResources.getString(name) - 如何创建自义定布局
- 选择布局:LinearLayout ConstraintLayou…
下面以LinearLayout为例
var container:LinearLayout = LinearLayout(this)
- 设置布局参数:LayoutParams
容器尺寸:layout_width、layout_height
var myLayoutParams = LinearLayout.LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.MATCH_PARENT,
)
container.layoutParams = myLayoutParams
- 设置排列方式:VERTICAL(竖)、HORIZONTAL(横)
container.orientation = LinearLayout.VERTICAL
- 设置背景颜色
container.background = getDrawable(R.color.black)
- 如何在父容器中插入子容器
//head是父容器 title是子容器
head.addView(title)
下面我们来看一下完整的代码
//创建容器 图片和标题
fun title():LinearLayout{
var head = LinearLayout(this).apply {
//布局参数
layoutParams = LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT,
LinearLayout.LayoutParams.WRAP_CONTENT
)
background = getDrawable(R.color.white)
orientation = LinearLayout.HORIZONTAL
}
//添加图片
ImageView(this).apply {
//设置尺寸
layoutParams = ViewGroup.LayoutParams(DPToPX(300),DPToPX(100))
setImageResource(R.drawable.bg)
//添加到父容器中
head.addView(this)
}
//添加文本
TextView(this).apply {
//设置尺寸
layoutParams = ViewGroup.LayoutParams(DPToPX(210),DPToPX(60))
text = "xssdad"
//添加到父容器中
head.addView(this)
}
return head
}
//将dp转化为px
fun DPToPX(dp:Int):Int{
return (resources.displayMetrics.density * dp).toInt()
}
//自义定容器
fun mContainer(): LinearLayout {
var container:LinearLayout = LinearLayout(this)
//设置容器的尺寸
var myLayoutParams = LinearLayout.LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.MATCH_PARENT,
)
container.layoutParams = myLayoutParams
//设置排列方式 横 竖
container.orientation = LinearLayout.HORIZONTAL
//设置背景颜色
container.background = getDrawable(R.color.purple_200)
container.addView(title())
return container
}
- 怎么在MainActivity中调用自义定布局
- 将container设置为全局变量
lateinit var container:LinearLayout
- 在函数中返回container
fun mContainer():LinearLayout{
container:LinearLayout = LinearLayout(this)
return container
}