我正在尝试在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>
但是我正在将动作表变为全高清。只需要它的一半屏幕。
答案 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();
这将在屏幕的半屏显示对话框而不是完整。希望这会有所帮助!