summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tests/SilkFX/res/layout/activity_glass.xml39
-rw-r--r--tests/SilkFX/src/com/android/test/silkfx/materials/GlassActivity.kt10
-rw-r--r--tests/SilkFX/src/com/android/test/silkfx/materials/GlassView.kt13
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)