Android TV: Visual tweaks & glitch fixes
This commit is contained in:
parent
9dd4cee1b7
commit
d191d8851a
|
@ -13,6 +13,9 @@ import android.view.MenuItem;
|
||||||
import android.view.MotionEvent;
|
import android.view.MotionEvent;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewTreeObserver;
|
import android.view.ViewTreeObserver;
|
||||||
|
import android.view.animation.AccelerateInterpolator;
|
||||||
|
import android.view.animation.DecelerateInterpolator;
|
||||||
|
import android.view.animation.Interpolator;
|
||||||
import android.widget.FrameLayout;
|
import android.widget.FrameLayout;
|
||||||
import android.widget.ImageView;
|
import android.widget.ImageView;
|
||||||
import android.widget.LinearLayout;
|
import android.widget.LinearLayout;
|
||||||
|
@ -41,6 +44,9 @@ public final class EmulationActivity extends AppCompatActivity
|
||||||
// So that MainActivity knows which view to invalidate before the return animation.
|
// So that MainActivity knows which view to invalidate before the return animation.
|
||||||
private int mPosition;
|
private int mPosition;
|
||||||
|
|
||||||
|
private static Interpolator sDecelerator = new DecelerateInterpolator();
|
||||||
|
private static Interpolator sAccelerator = new AccelerateInterpolator();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Handlers are a way to pass a message to an Activity telling it to do something
|
* Handlers are a way to pass a message to an Activity telling it to do something
|
||||||
* on the UI thread. This Handler responds to any message, even blank ones, by
|
* on the UI thread. This Handler responds to any message, even blank ones, by
|
||||||
|
@ -241,44 +247,40 @@ public final class EmulationActivity extends AppCompatActivity
|
||||||
{
|
{
|
||||||
if (mMenuVisible)
|
if (mMenuVisible)
|
||||||
{
|
{
|
||||||
|
mMenuVisible = false;
|
||||||
|
|
||||||
mMenuLayout.animate()
|
mMenuLayout.animate()
|
||||||
.withLayer()
|
.withLayer()
|
||||||
.setDuration(200)
|
.setDuration(200)
|
||||||
|
.setInterpolator(sAccelerator)
|
||||||
.alpha(0.0f)
|
.alpha(0.0f)
|
||||||
.scaleX(1.1f)
|
.translationX(-400.0f)
|
||||||
.scaleY(1.1f)
|
|
||||||
.withEndAction(new Runnable()
|
.withEndAction(new Runnable()
|
||||||
{
|
{
|
||||||
@Override
|
@Override
|
||||||
public void run()
|
public void run()
|
||||||
|
{
|
||||||
|
if (mMenuVisible)
|
||||||
{
|
{
|
||||||
mMenuLayout.setVisibility(View.GONE);
|
mMenuLayout.setVisibility(View.GONE);
|
||||||
mMenuVisible = false;
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
mMenuVisible = true;
|
||||||
mMenuLayout.setVisibility(View.VISIBLE);
|
mMenuLayout.setVisibility(View.VISIBLE);
|
||||||
|
|
||||||
mMenuLayout.setScaleX(1.1f);
|
// mMenuLayout.setTranslationX(-400.0f);
|
||||||
mMenuLayout.setScaleY(1.1f);
|
|
||||||
mMenuLayout.setAlpha(0.0f);
|
mMenuLayout.setAlpha(0.0f);
|
||||||
|
|
||||||
mMenuLayout.animate()
|
mMenuLayout.animate()
|
||||||
.withLayer()
|
.withLayer()
|
||||||
.setDuration(300)
|
.setDuration(300)
|
||||||
|
.setInterpolator(sDecelerator)
|
||||||
.alpha(1.0f)
|
.alpha(1.0f)
|
||||||
.scaleX(1.0f)
|
.translationX(0.0f);
|
||||||
.scaleY(1.0f)
|
|
||||||
.withEndAction(new Runnable()
|
|
||||||
{
|
|
||||||
@Override
|
|
||||||
public void run()
|
|
||||||
{
|
|
||||||
mMenuVisible = true;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -20,7 +20,6 @@
|
||||||
android:id="@+id/layout_ingame_menu"
|
android:id="@+id/layout_ingame_menu"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:background="#af000000"
|
|
||||||
android:orientation="horizontal"
|
android:orientation="horizontal"
|
||||||
android:visibility="gone"
|
android:visibility="gone"
|
||||||
tools:visibility="visible"
|
tools:visibility="visible"
|
||||||
|
@ -38,7 +37,7 @@
|
||||||
android:id="@+id/frame_submenu"
|
android:id="@+id/frame_submenu"
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:layout_weight="2"/>
|
android:layout_weight="3"/>
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
|
|
|
@ -3,62 +3,44 @@
|
||||||
android:orientation="vertical"
|
android:orientation="vertical"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:padding="32dp">
|
android:background="@color/dolphin_blue_dark"
|
||||||
|
android:paddingTop="32dp"
|
||||||
|
android:paddingBottom="32dp"
|
||||||
|
>
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
android:id="@+id/menu_take_screenshot"
|
android:id="@+id/menu_take_screenshot"
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:text="@string/overlay_screenshot"
|
android:text="@string/overlay_screenshot"
|
||||||
android:layout_margin="8dp"
|
|
||||||
style="@style/InGameMenuOption"/>
|
style="@style/InGameMenuOption"/>
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
android:id="@+id/menu_quicksave"
|
android:id="@+id/menu_quicksave"
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:text="@string/emulation_quicksave"
|
android:text="@string/emulation_quicksave"
|
||||||
android:layout_margin="8dp"
|
|
||||||
style="@style/InGameMenuOption"/>
|
style="@style/InGameMenuOption"/>
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
android:id="@+id/menu_quickload"
|
android:id="@+id/menu_quickload"
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:text="@string/emulation_quickload"
|
android:text="@string/emulation_quickload"
|
||||||
android:layout_margin="8dp"
|
|
||||||
style="@style/InGameMenuOption"/>
|
style="@style/InGameMenuOption"/>
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
android:id="@+id/menu_emulation_save_root"
|
android:id="@+id/menu_emulation_save_root"
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:text="@string/overlay_savestate"
|
android:text="@string/overlay_savestate"
|
||||||
android:layout_margin="8dp"
|
|
||||||
style="@style/InGameMenuOption"/>
|
style="@style/InGameMenuOption"/>
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
android:id="@+id/menu_emulation_load_root"
|
android:id="@+id/menu_emulation_load_root"
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:text="@string/overlay_loadstate"
|
android:text="@string/overlay_loadstate"
|
||||||
android:layout_margin="8dp"
|
|
||||||
style="@style/InGameMenuOption"/>
|
style="@style/InGameMenuOption"/>
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
android:id="@+id/menu_ingame_settings"
|
android:id="@+id/menu_ingame_settings"
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:text="@string/settings"
|
android:text="@string/settings"
|
||||||
android:layout_margin="8dp"
|
|
||||||
style="@style/InGameMenuOption"/>
|
style="@style/InGameMenuOption"/>
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
android:id="@+id/menu_exit"
|
android:id="@+id/menu_exit"
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:text="@string/overlay_exit_emulation"
|
android:text="@string/overlay_exit_emulation"
|
||||||
android:layout_margin="8dp"
|
|
||||||
style="@style/InGameMenuOption"/>
|
style="@style/InGameMenuOption"/>
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
|
@ -127,11 +127,16 @@
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<style name="InGameMenuOption" parent="Widget.AppCompat.Button.Borderless">
|
<style name="InGameMenuOption" parent="Widget.AppCompat.Button.Borderless">
|
||||||
<item name="android:textSize">24dp</item>
|
<item name="android:textSize">20sp</item>
|
||||||
<item name="android:fontFamily">sans-serif-condensed</item>
|
<item name="android:fontFamily">sans-serif-condensed</item>
|
||||||
<item name="android:textColor">@android:color/white</item>
|
<item name="android:textColor">@android:color/white</item>
|
||||||
<item name="android:textAllCaps">false</item>
|
<item name="android:textAllCaps">false</item>
|
||||||
<item name="android:gravity">left</item>
|
<item name="android:layout_width">match_parent</item>
|
||||||
|
<item name="android:layout_height">48dp</item>
|
||||||
|
<item name="android:gravity">center_vertical|left</item>
|
||||||
|
<item name="android:paddingLeft">32dp</item>
|
||||||
|
<item name="android:paddingRight">32dp</item>
|
||||||
|
<item name="android:layout_margin">0dp</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
</resources>
|
</resources>
|
Loading…
Reference in New Issue