comparison android/DWindows.kt @ 2733:34e34d5d56e8

Android: Add a color picker preview area and a gradient slider for contrast. This allows the color picker to choose any possible color... The initial value is a little strange, but it more or less works.
author bsmith@81767d24-ef19-dc11-ae90-00e081727c95
date Wed, 15 Dec 2021 14:53:04 +0000
parents bf585f375286
children cd3c7740e352
comparison
equal deleted inserted replaced
2732:61821532faa0 2733:34e34d5d56e8
5385 if(Looper.getMainLooper() != Looper.myLooper()) { 5385 if(Looper.getMainLooper() != Looper.myLooper()) {
5386 colorLock.lock() 5386 colorLock.lock()
5387 waitOnUiThread { 5387 waitOnUiThread {
5388 val dialog = Dialog(this) 5388 val dialog = Dialog(this)
5389 val colorWheel = ColorWheel(this, null, 0) 5389 val colorWheel = ColorWheel(this, null, 0)
5390 5390 val gradientBar = GradientSeekBar(this, null, 0)
5391 dialog.setContentView(colorWheel) 5391 val display = View(this)
5392 colorWheel.rgb = Color.rgb(red, green, blue) 5392 val layout = RelativeLayout(this)
5393 colorChosen = colorWheel.rgb 5393 val w = RelativeLayout.LayoutParams.MATCH_PARENT
5394 colorWheel.colorChangeListener = { rgb: Int -> colorChosen = rgb } 5394 val h = RelativeLayout.LayoutParams.WRAP_CONTENT
5395 val margin = 10
5396
5397 colorWheel.id = View.generateViewId()
5398 gradientBar.id = View.generateViewId()
5399 display.id = View.generateViewId()
5400 gradientBar.orientation = GradientSeekBar.Orientation.HORIZONTAL
5401
5402 var params: RelativeLayout.LayoutParams = RelativeLayout.LayoutParams(w, 100)
5403 params.addRule(RelativeLayout.ALIGN_PARENT_TOP)
5404 params.setMargins(margin,margin,margin,margin)
5405 layout.addView(display, params)
5406 params = RelativeLayout.LayoutParams(w, w)
5407 params.setMargins(margin,margin,margin,margin)
5408 params.addRule(RelativeLayout.BELOW, display.id)
5409 layout.addView(colorWheel, params)
5410 params = RelativeLayout.LayoutParams(w, h)
5411 params.setMargins(margin,margin,margin,margin)
5412 params.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM)
5413 layout.addView(gradientBar, params)
5414
5415 dialog.setContentView(layout)
5416 colorChosen = Color.rgb(red, green, blue)
5417 colorWheel.rgb = colorChosen
5418 gradientBar.setBlackToColor(colorChosen)
5419 gradientBar.offset = 1F
5420 display.setBackgroundColor(colorChosen)
5421 colorWheel.colorChangeListener = { rgb: Int ->
5422 gradientBar.setBlackToColor(rgb)
5423 display.setBackgroundColor(gradientBar.argb)
5424 colorChosen = gradientBar.argb
5425 }
5426 gradientBar.colorChangeListener = { offset: Float, argb: Int ->
5427 display.setBackgroundColor(argb)
5428 colorChosen = argb
5429 }
5395 dialog.window?.setLayout( 5430 dialog.window?.setLayout(
5396 ViewGroup.LayoutParams.MATCH_PARENT, 5431 ViewGroup.LayoutParams.MATCH_PARENT,
5397 ViewGroup.LayoutParams.MATCH_PARENT 5432 ViewGroup.LayoutParams.MATCH_PARENT
5398 ) 5433 )
5399 dialog.setOnDismissListener { 5434 dialog.setOnDismissListener {
5400 colorLock.lock() 5435 colorLock.lock()
5401 colorCond.signal() 5436 colorCond.signal()
5402 colorLock.unlock() 5437 colorLock.unlock()