10

私は初心者のプログラマーで、ダイアログ ボックスのアニメーション (フェードインとフェードアウト) を無効にすることに問題があります。

空のスタイルを使用してそれに変更しようとしました

final AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());

の中へ

final AlertDialog.Builder builder = new AlertDialog.Builder(new ContextThemeWrapper(getActivity(), R.style.NoAnimation));

ダイアログ ボックスの背景が黒くなり、正と負のボタンが <2.1 - 4.0) の Android スタイルに変更されましたが、フェードインとフェードアウトのアニメーション効果は残っていました...

私のスタイル:

<style name="DialogNoAnimation">
    <item name="android:windowEnterAnimation">@anim/enter</item>
    <item name="android:windowExitAnimation">@anim/exit</item>
</style>

<style name="NoAnimation" parent="@android:style/Theme.Dialog">
    <item name="android:windowAnimationStyle">@style/DialogNoAnimation</item>
</style>

このアニメーションを削除するにはどうすればよいですか?

4

2 に答える 2

12

ついに成功!

res/anim/enter.xml

<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
 android:duration="@android:integer/config_shortAnimTime"/>

res/anim/exit.xml

<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="@android:integer/config_shortAnimTime"/>

res/values/styles.xml

<style name="DialogNoAnimation">
    <item name="android:windowEnterAnimation">@anim/enter</item>
    <item name="android:windowExitAnimation">@anim/exit</item>
</style>

src/[dialog_box_class].java

@Override
public void onStart()
{
  super.onStart();
  if (getDialog() == null)
    return;
  getDialog().getWindow().setWindowAnimations(R.style.DialogNoAnimation);
}
于 2013-08-09T22:01:37.127 に答える