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)