diff options
3 files changed, 58 insertions, 4 deletions
diff --git a/tests/SilkFX/res/layout/activity_glass.xml b/tests/SilkFX/res/layout/activity_glass.xml index 85dab9315197..a7b76bdeba09 100644 --- a/tests/SilkFX/res/layout/activity_glass.xml +++ b/tests/SilkFX/res/layout/activity_glass.xml @@ -68,6 +68,21 @@ app:layout_constraintStart_toStartOf="parent" /> <SeekBar + android:id="@+id/zoom" + android:layout_width="0dp" + android:layout_height="wrap_content" + android:layout_marginBottom="16dp" + android:layout_marginEnd="12dp" + android:layout_marginStart="12dp" + android:min="-100" + android:max="100" + android:progress="-15" + app:layout_constraintBottom_toTopOf="@+id/blurRadiusTitle" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintHorizontal_bias="1.0" + app:layout_constraintStart_toStartOf="parent" /> + + <SeekBar android:id="@+id/blurRadius" android:layout_width="0dp" android:layout_height="wrap_content" @@ -75,7 +90,7 @@ android:layout_marginEnd="12dp" android:layout_marginStart="12dp" android:max="150" - android:progress="50" + android:progress="20" app:layout_constraintBottom_toTopOf="@+id/materialOpacityTitle" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="1.0" @@ -132,6 +147,17 @@ app:layout_constraintStart_toStartOf="parent" /> <TextView + android:id="@+id/zoomTitle" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginStart="24dp" + android:layout_marginBottom="8dp" + android:text="Zoom" + android:textColor="@android:color/white" + app:layout_constraintBottom_toTopOf="@+id/zoom" + app:layout_constraintStart_toStartOf="parent" /> + + <TextView android:id="@+id/blurRadiusTitle" android:layout_width="wrap_content" android:layout_height="wrap_content" @@ -200,7 +226,7 @@ android:layout_marginStart="24dp" android:layout_marginBottom="8dp" android:text="Light Material" - app:layout_constraintBottom_toTopOf="@+id/blurRadiusTitle" + app:layout_constraintBottom_toTopOf="@+id/zoomTitle" app:layout_constraintStart_toStartOf="parent" /> <TextView @@ -213,6 +239,15 @@ app:layout_constraintStart_toEndOf="@+id/blurRadiusTitle" /> <TextView + android:id="@+id/zoomValue" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="TextView" + android:layout_marginLeft="8dp" + app:layout_constraintBottom_toBottomOf="@+id/zoomTitle" + app:layout_constraintStart_toEndOf="@+id/zoomTitle" /> + + <TextView android:id="@+id/materialOpacityValue" android:layout_width="wrap_content" android:layout_height="wrap_content" diff --git a/tests/SilkFX/src/com/android/test/silkfx/materials/GlassActivity.kt b/tests/SilkFX/src/com/android/test/silkfx/materials/GlassActivity.kt index 6f5ddacb2733..72b342c54d19 100644 --- a/tests/SilkFX/src/com/android/test/silkfx/materials/GlassActivity.kt +++ b/tests/SilkFX/src/com/android/test/silkfx/materials/GlassActivity.kt @@ -39,11 +39,13 @@ class GlassActivity : Activity(), SeekBar.OnSeekBarChangeListener { lateinit var noiseOpacitySeekBar: SeekBar lateinit var materialOpacitySeekBar: SeekBar lateinit var scrimOpacitySeekBar: SeekBar + lateinit var zoomSeekBar: SeekBar lateinit var blurRadiusSeekBar: SeekBar lateinit var noiseOpacityValue: TextView lateinit var materialOpacityValue: TextView lateinit var scrimOpacityValue: TextView lateinit var blurRadiusValue: TextView + lateinit var zoomValue: TextView lateinit var background: Bitmap @@ -58,12 +60,14 @@ class GlassActivity : Activity(), SeekBar.OnSeekBarChangeListener { materialView = requireViewById(R.id.materialView) materialOpacitySeekBar = requireViewById(R.id.materialOpacity) blurRadiusSeekBar = requireViewById(R.id.blurRadius) + zoomSeekBar = requireViewById(R.id.zoom) noiseOpacitySeekBar = requireViewById(R.id.noiseOpacity) scrimOpacitySeekBar = requireViewById(R.id.scrimOpacity) noiseOpacityValue = requireViewById(R.id.noiseOpacityValue) materialOpacityValue = requireViewById(R.id.materialOpacityValue) scrimOpacityValue = requireViewById(R.id.scrimOpacityValue) blurRadiusValue = requireViewById(R.id.blurRadiusValue) + zoomValue = requireViewById(R.id.zoomValue) background = BitmapFactory.decodeResource(resources, R.drawable.background1) backgroundView.setImageBitmap(background) @@ -75,7 +79,7 @@ class GlassActivity : Activity(), SeekBar.OnSeekBarChangeListener { scrimOpacitySeekBar.setOnSeekBarChangeListener(this) arrayOf(blurRadiusSeekBar, materialOpacitySeekBar, noiseOpacitySeekBar, - scrimOpacitySeekBar).forEach { + scrimOpacitySeekBar, zoomSeekBar).forEach { it.setOnSeekBarChangeListener(this) onProgressChanged(it, it.progress, fromUser = false) } @@ -104,6 +108,10 @@ class GlassActivity : Activity(), SeekBar.OnSeekBarChangeListener { materialView.scrimOpacity = progress / seekBar.max.toFloat() scrimOpacityValue.text = progress.toString() } + zoomSeekBar -> { + materialView.zoom = progress / seekBar.max.toFloat() + zoomValue.text = progress.toString() + } else -> throw IllegalArgumentException("Unknown seek bar") } } diff --git a/tests/SilkFX/src/com/android/test/silkfx/materials/GlassView.kt b/tests/SilkFX/src/com/android/test/silkfx/materials/GlassView.kt index e100959908c3..60797680b79e 100644 --- a/tests/SilkFX/src/com/android/test/silkfx/materials/GlassView.kt +++ b/tests/SilkFX/src/com/android/test/silkfx/materials/GlassView.kt @@ -70,6 +70,12 @@ class GlassView(context: Context, attributeSet: AttributeSet) : View(context, at invalidate() } + var zoom = 0.0f + set(value) { + field = value + invalidate() + } + var color = Color.BLACK set(value) { field = value @@ -107,7 +113,12 @@ class GlassView(context: Context, attributeSet: AttributeSet) : View(context, at } override fun onDraw(canvas: Canvas?) { - src.set(left, top, right, bottom) + src.set(-width/2, -height/2, width/2, height/2) + src.scale(1.0f + zoom) + val centerX = left + width / 2 + val centerY = top + height / 2 + src.set(src.left + centerX, src.top + centerY, src.right + centerX, src.bottom + centerY) + dst.set(0, 0, width, height) canvas?.drawBitmap(backgroundBitmap, src, dst, blurPaint) canvas?.drawRect(dst, materialPaint) |