调整 SeekBar 长度
Adjusting SeekBar length
我有一个具有以下 kotlin 函数的 Android 应用程序:
fun setAdjustBars() {
val clrSetBarR = SeekBar(this)
val clrSetBarG = SeekBar(this)
val clrSetBarB = SeekBar(this)
clrSetBarR.thumbTintList = ColorStateList.valueOf(Color.rgb(255,0,0))
clrSetBarG.thumbTintList = ColorStateList.valueOf(Color.rgb(0,255,0))
clrSetBarB.thumbTintList = ColorStateList.valueOf(Color.rgb(0,0,255))
val sideColrVal = 77
clrSetBarR.progressTintList = ColorStateList.valueOf(Color.rgb(255,sideColrVal,sideColrVal))
clrSetBarG.progressTintList = ColorStateList.valueOf(Color.rgb(sideColrVal,255,sideColrVal))
clrSetBarB.progressTintList = ColorStateList.valueOf(Color.rgb(sideColrVal,sideColrVal,255))
val constrSet = ConstraintSet()
val seekBarsArray = arrayOf(clrSetBarR,clrSetBarG,clrSetBarB)
seekBarsArray.map {
it.id = View.generateViewId()
constraintLayout?.addView(it)
it.rotation = 270.0F
it.max = 255
}
constrSet.clone(constraintLayout)
seekBarsArray.map {
constrSet.connect(it.id, ConstraintSet.BOTTOM, deviceFrameID, ConstraintSet.BOTTOM)
constrSet.setMargin(it.id, ConstraintSet.BOTTOM, 50)
}
val sideShift = 150
constrSet.connect(clrSetBarR.id, ConstraintSet.LEFT, deviceFrameID, ConstraintSet.LEFT)
constrSet.setMargin(clrSetBarR.id, ConstraintSet.LEFT, sideShift)
constrSet.connect(clrSetBarG.id, ConstraintSet.LEFT, deviceFrameID, ConstraintSet.LEFT)
constrSet.connect(clrSetBarG.id, ConstraintSet.RIGHT, deviceFrameID, ConstraintSet.RIGHT)
constrSet.connect(clrSetBarB.id, ConstraintSet.RIGHT, deviceFrameID, ConstraintSet.RIGHT)
constrSet.setMargin(clrSetBarB.id, ConstraintSet.RIGHT, sideShift)
constrSet.applyTo(constraintLayout)
}
函数的作用是在显示的底部放置三个垂直的SeekBar对象。正如您在下面的屏幕截图中看到的那样,它完成了它的工作。我遇到的一个问题是钢筋的长度(高度)太短了。如何修改我的代码以获得适当长度的条形图? (说几厘米而不是现在的一毫米左右)
您必须更改 SeekBar
的 width
以调整其长度。将其添加到布局后更改其宽度。
seekBarsArray.map {
it.id = View.generateViewId()
constraintLayout?.addView(it)
val params = it.layoutParams
params.width = 350
it.layoutParams = params
it.max = 255
it.rotation = 270f
}
由于您的视图位于屏幕底部,旋转它可能会将视图移出屏幕。您可能希望在旋转视图之前更改视图的轴心点。
我有一个具有以下 kotlin 函数的 Android 应用程序:
fun setAdjustBars() {
val clrSetBarR = SeekBar(this)
val clrSetBarG = SeekBar(this)
val clrSetBarB = SeekBar(this)
clrSetBarR.thumbTintList = ColorStateList.valueOf(Color.rgb(255,0,0))
clrSetBarG.thumbTintList = ColorStateList.valueOf(Color.rgb(0,255,0))
clrSetBarB.thumbTintList = ColorStateList.valueOf(Color.rgb(0,0,255))
val sideColrVal = 77
clrSetBarR.progressTintList = ColorStateList.valueOf(Color.rgb(255,sideColrVal,sideColrVal))
clrSetBarG.progressTintList = ColorStateList.valueOf(Color.rgb(sideColrVal,255,sideColrVal))
clrSetBarB.progressTintList = ColorStateList.valueOf(Color.rgb(sideColrVal,sideColrVal,255))
val constrSet = ConstraintSet()
val seekBarsArray = arrayOf(clrSetBarR,clrSetBarG,clrSetBarB)
seekBarsArray.map {
it.id = View.generateViewId()
constraintLayout?.addView(it)
it.rotation = 270.0F
it.max = 255
}
constrSet.clone(constraintLayout)
seekBarsArray.map {
constrSet.connect(it.id, ConstraintSet.BOTTOM, deviceFrameID, ConstraintSet.BOTTOM)
constrSet.setMargin(it.id, ConstraintSet.BOTTOM, 50)
}
val sideShift = 150
constrSet.connect(clrSetBarR.id, ConstraintSet.LEFT, deviceFrameID, ConstraintSet.LEFT)
constrSet.setMargin(clrSetBarR.id, ConstraintSet.LEFT, sideShift)
constrSet.connect(clrSetBarG.id, ConstraintSet.LEFT, deviceFrameID, ConstraintSet.LEFT)
constrSet.connect(clrSetBarG.id, ConstraintSet.RIGHT, deviceFrameID, ConstraintSet.RIGHT)
constrSet.connect(clrSetBarB.id, ConstraintSet.RIGHT, deviceFrameID, ConstraintSet.RIGHT)
constrSet.setMargin(clrSetBarB.id, ConstraintSet.RIGHT, sideShift)
constrSet.applyTo(constraintLayout)
}
函数的作用是在显示的底部放置三个垂直的SeekBar对象。正如您在下面的屏幕截图中看到的那样,它完成了它的工作。我遇到的一个问题是钢筋的长度(高度)太短了。如何修改我的代码以获得适当长度的条形图? (说几厘米而不是现在的一毫米左右)
您必须更改 SeekBar
的 width
以调整其长度。将其添加到布局后更改其宽度。
seekBarsArray.map {
it.id = View.generateViewId()
constraintLayout?.addView(it)
val params = it.layoutParams
params.width = 350
it.layoutParams = params
it.max = 255
it.rotation = 270f
}
由于您的视图位于屏幕底部,旋转它可能会将视图移出屏幕。您可能希望在旋转视图之前更改视图的轴心点。