mirror of
https://git.suyu.dev/suyu/suyu.git
synced 2024-11-15 22:54:00 +00:00
android: New settings fragment animations
This commit is contained in:
parent
f40059e4ba
commit
352559b83d
12 changed files with 80 additions and 163 deletions
|
@ -97,10 +97,10 @@ class SettingsActivity : AppCompatActivity(), SettingsActivityView {
|
|||
if (addToStack) {
|
||||
if (areSystemAnimationsEnabled()) {
|
||||
transaction.setCustomAnimations(
|
||||
R.animator.settings_enter,
|
||||
R.animator.settings_exit,
|
||||
R.animator.settings_pop_enter,
|
||||
R.animator.setttings_pop_exit
|
||||
R.anim.anim_settings_fragment_in,
|
||||
R.anim.anim_settings_fragment_out,
|
||||
0,
|
||||
R.anim.anim_pop_settings_fragment_out
|
||||
)
|
||||
}
|
||||
transaction.addToBackStack(null)
|
||||
|
|
|
@ -1,46 +0,0 @@
|
|||
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
package org.yuzu.yuzu_emu.features.settings.ui
|
||||
|
||||
import android.content.Context
|
||||
import android.util.AttributeSet
|
||||
import android.widget.FrameLayout
|
||||
|
||||
/**
|
||||
* FrameLayout subclass with few Properties added to simplify animations.
|
||||
* Don't remove the methods appearing as unused, in order not to break the menu animations
|
||||
*/
|
||||
class SettingsFrameLayout : FrameLayout {
|
||||
private val mVisibleness = 1.0f
|
||||
|
||||
constructor(context: Context?) : super(context!!)
|
||||
constructor(context: Context?, attrs: AttributeSet?) : super(context!!, attrs)
|
||||
|
||||
constructor(
|
||||
context: Context?,
|
||||
attrs: AttributeSet?,
|
||||
defStyleAttr: Int
|
||||
) : super(context!!, attrs, defStyleAttr)
|
||||
|
||||
constructor(
|
||||
context: Context?,
|
||||
attrs: AttributeSet?,
|
||||
defStyleAttr: Int,
|
||||
defStyleRes: Int
|
||||
) : super(context!!, attrs, defStyleAttr, defStyleRes)
|
||||
|
||||
var yFraction: Float
|
||||
get() = y / height
|
||||
set(yFraction) {
|
||||
val height = height
|
||||
y = (if (height > 0) yFraction * height else -9999) as Float
|
||||
}
|
||||
var visibleness: Float
|
||||
get() = mVisibleness
|
||||
set(visibleness) {
|
||||
scaleX = visibleness
|
||||
scaleY = visibleness
|
||||
alpha = visibleness
|
||||
}
|
||||
}
|
|
@ -0,0 +1,16 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<set xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
<alpha
|
||||
android:duration="125"
|
||||
android:interpolator="@android:anim/decelerate_interpolator"
|
||||
android:fromAlpha="1"
|
||||
android:toAlpha="0" />
|
||||
|
||||
<translate
|
||||
android:duration="125"
|
||||
android:interpolator="@android:anim/decelerate_interpolator"
|
||||
android:fromXDelta="0"
|
||||
android:toXDelta="-75" />
|
||||
|
||||
</set>
|
|
@ -0,0 +1,16 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<set xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
<alpha
|
||||
android:duration="@android:integer/config_shortAnimTime"
|
||||
android:interpolator="@android:anim/decelerate_interpolator"
|
||||
android:fromAlpha="0"
|
||||
android:toAlpha="1" />
|
||||
|
||||
<translate
|
||||
android:duration="@android:integer/config_shortAnimTime"
|
||||
android:interpolator="@android:anim/decelerate_interpolator"
|
||||
android:fromXDelta="-200"
|
||||
android:toXDelta="0" />
|
||||
|
||||
</set>
|
|
@ -0,0 +1,16 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<set xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
<alpha
|
||||
android:duration="125"
|
||||
android:interpolator="@android:anim/decelerate_interpolator"
|
||||
android:fromAlpha="1"
|
||||
android:toAlpha="0" />
|
||||
|
||||
<translate
|
||||
android:duration="125"
|
||||
android:interpolator="@android:anim/decelerate_interpolator"
|
||||
android:fromXDelta="0"
|
||||
android:toXDelta="75" />
|
||||
|
||||
</set>
|
|
@ -0,0 +1,16 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<set xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
<alpha
|
||||
android:duration="@android:integer/config_shortAnimTime"
|
||||
android:interpolator="@android:anim/decelerate_interpolator"
|
||||
android:fromAlpha="0"
|
||||
android:toAlpha="1" />
|
||||
|
||||
<translate
|
||||
android:duration="@android:integer/config_shortAnimTime"
|
||||
android:interpolator="@android:anim/decelerate_interpolator"
|
||||
android:fromXDelta="200"
|
||||
android:toXDelta="0" />
|
||||
|
||||
</set>
|
|
@ -0,0 +1,10 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<set xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
<alpha
|
||||
android:duration="@android:integer/config_shortAnimTime"
|
||||
android:interpolator="@android:anim/decelerate_interpolator"
|
||||
android:fromAlpha="1"
|
||||
android:toAlpha="0" />
|
||||
|
||||
</set>
|
|
@ -1,28 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<set xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
<objectAnimator
|
||||
android:duration="@android:integer/config_mediumAnimTime"
|
||||
android:interpolator="@android:interpolator/decelerate_cubic"
|
||||
android:propertyName="yFraction"
|
||||
android:startOffset="@android:integer/config_shortAnimTime"
|
||||
android:valueFrom="1.0"
|
||||
android:valueTo="0" />
|
||||
|
||||
<objectAnimator
|
||||
android:duration="@android:integer/config_mediumAnimTime"
|
||||
android:interpolator="@android:interpolator/decelerate_cubic"
|
||||
android:propertyName="translationZ"
|
||||
android:startOffset="@android:integer/config_shortAnimTime"
|
||||
android:valueFrom="100.0"
|
||||
android:valueTo="0" />
|
||||
|
||||
<objectAnimator
|
||||
android:duration="@android:integer/config_mediumAnimTime"
|
||||
android:interpolator="@android:interpolator/decelerate_cubic"
|
||||
android:propertyName="elevation"
|
||||
android:startOffset="@android:integer/config_shortAnimTime"
|
||||
android:valueFrom="100.0"
|
||||
android:valueTo="0" />
|
||||
|
||||
</set>
|
|
@ -1,28 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<set xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
<objectAnimator
|
||||
android:duration="@android:integer/config_mediumAnimTime"
|
||||
android:interpolator="@android:interpolator/accelerate_cubic"
|
||||
android:propertyName="visibleness"
|
||||
android:valueFrom="1.0f"
|
||||
android:valueTo="0.6f"
|
||||
android:valueType="floatType" />
|
||||
|
||||
<objectAnimator
|
||||
android:duration="@android:integer/config_mediumAnimTime"
|
||||
android:interpolator="@android:interpolator/decelerate_cubic"
|
||||
android:propertyName="translationZ"
|
||||
android:startOffset="@android:integer/config_shortAnimTime"
|
||||
android:valueFrom="0"
|
||||
android:valueTo="-100.0" />
|
||||
|
||||
<objectAnimator
|
||||
android:duration="@android:integer/config_mediumAnimTime"
|
||||
android:interpolator="@android:interpolator/decelerate_cubic"
|
||||
android:propertyName="elevation"
|
||||
android:startOffset="@android:integer/config_shortAnimTime"
|
||||
android:valueFrom="0"
|
||||
android:valueTo="-100.0" />
|
||||
|
||||
</set>
|
|
@ -1,28 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<set xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
<objectAnimator
|
||||
android:duration="@android:integer/config_mediumAnimTime"
|
||||
android:interpolator="@android:interpolator/decelerate_cubic"
|
||||
android:propertyName="visibleness"
|
||||
android:valueFrom="0.6f"
|
||||
android:valueTo="1.0f"
|
||||
android:valueType="floatType" />
|
||||
|
||||
<objectAnimator
|
||||
android:duration="@android:integer/config_mediumAnimTime"
|
||||
android:interpolator="@android:interpolator/decelerate_cubic"
|
||||
android:propertyName="translationZ"
|
||||
android:startOffset="@android:integer/config_shortAnimTime"
|
||||
android:valueFrom="-100.0"
|
||||
android:valueTo="0" />
|
||||
|
||||
<objectAnimator
|
||||
android:duration="@android:integer/config_mediumAnimTime"
|
||||
android:interpolator="@android:interpolator/decelerate_cubic"
|
||||
android:propertyName="elevation"
|
||||
android:startOffset="@android:integer/config_shortAnimTime"
|
||||
android:valueFrom="-100.0"
|
||||
android:valueTo="0" />
|
||||
|
||||
</set>
|
|
@ -1,27 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<set xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
<objectAnimator
|
||||
android:duration="@android:integer/config_mediumAnimTime"
|
||||
android:interpolator="@android:interpolator/accelerate_cubic"
|
||||
android:propertyName="yFraction"
|
||||
android:valueFrom="0"
|
||||
android:valueTo="1.0" />
|
||||
|
||||
<objectAnimator
|
||||
android:duration="@android:integer/config_mediumAnimTime"
|
||||
android:interpolator="@android:interpolator/decelerate_cubic"
|
||||
android:propertyName="translationZ"
|
||||
android:startOffset="@android:integer/config_shortAnimTime"
|
||||
android:valueFrom="0.0"
|
||||
android:valueTo="100" />
|
||||
|
||||
<objectAnimator
|
||||
android:duration="@android:integer/config_mediumAnimTime"
|
||||
android:interpolator="@android:interpolator/decelerate_cubic"
|
||||
android:propertyName="elevation"
|
||||
android:startOffset="@android:integer/config_shortAnimTime"
|
||||
android:valueFrom="0.0"
|
||||
android:valueTo="100" />
|
||||
|
||||
</set>
|
|
@ -1,5 +1,5 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<org.yuzu.yuzu_emu.features.settings.ui.SettingsFrameLayout
|
||||
<FrameLayout
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
@ -11,4 +11,4 @@
|
|||
android:background="?attr/colorSurface"
|
||||
android:clipToPadding="false" />
|
||||
|
||||
</org.yuzu.yuzu_emu.features.settings.ui.SettingsFrameLayout>
|
||||
</FrameLayout>
|
||||
|
|
Loading…
Reference in a new issue