Android动作表应该显示在iOS中的一半屏幕

时间:2015-07-25 17:29:59

标签: android

我正在尝试在Android中使用动作表,就像在ios中一样。尝试翻译动画以从屏幕底部到屏幕的一半获取动作表,但它占据了整个空间。这是代码。

在styles.xml中定义了一个样式

GameEntity
res / anim文件夹中的

bottom_up.xml

 <style name="DialogAnimation">
  <item name="android:windowEnterAnimation">@anim/bottom_up</item>
  <item name="android:windowExitAnimation">@anim/top_down</item>
 </style>
res / anim文件夹中的

top_down.xml

<?xml version="1.0" encoding="utf-8"?>
     <set xmlns:android="http://schemas.android.com/apk/res/android">
       <translate android:fromYDelta="75%p" android:toYDelta="0%p" 
        android:fillAfter="true"
     android:duration="500"/>
    </set>

活动

    <?xml version="1.0" encoding="utf-8"?>
     <set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate android:fromYDelta="0%p" android:toYDelta="100%p" android:fillAfter="true" android:duration="500" />
    </set>

但是我正在将动作表变为全高清。只需要它的一半屏幕。

1 个答案:

答案 0 :(得分:-1)

使用WindowManager获取显示尺寸,然后只需将对话框高度设置为屏幕的一半,

        Display display = getWindowManager().getDefaultDisplay();
        Point size = new Point();
        display.getSize(size);
        int width = size.x;
        int height = size.y;

        final Dialog dialog = new Dialog(ActionSheetDemoActivity.this);
        dialog.setContentView(R.layout.actionsheet);
        dialog.getWindow().getAttributes().windowAnimations = R.style.DialogAnimation;
        dialog.getWindow().setLayout(width, height/2);
        dialog.show();

这将在屏幕的半屏显示对话框而不是完整。希望这会有所帮助!