Android TV: Visual tweaks & glitch fixes

This commit is contained in:
sigmabeta 2015-07-03 16:38:23 -04:00
parent 9dd4cee1b7
commit d191d8851a
4 changed files with 30 additions and 42 deletions

View File

@ -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()
{ {
mMenuLayout.setVisibility(View.GONE); if (mMenuVisible)
mMenuVisible = false; {
mMenuLayout.setVisibility(View.GONE);
}
} }
}); });
} }
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;
}
});
} }
} }

View File

@ -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>

View File

@ -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>

View File

@ -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>