Mercurial > dwindows
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() |