diff --git a/tests/SilkFX/res/layout/activity_glass.xml b/tests/SilkFX/res/layout/activity_glass.xml
index 85dab9315197a..a7b76bdeba092 100644
--- a/tests/SilkFX/res/layout/activity_glass.xml
+++ b/tests/SilkFX/res/layout/activity_glass.xml
@@ -67,6 +67,21 @@
app:layout_constraintHorizontal_bias="1.0"
app:layout_constraintStart_toStartOf="parent" />
+
+
+
+
+
+
{
+ 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 e100959908c30..60797680b79ef 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)