幻灯片动画自定义提醒 activity
Slide animation custom alert activity
我有自定义警报对话框 activity 我想在视图出现和退出时设置动画,第一个有效(出现时)但第二个无效,我不知道退出时如何动画(点击外面)如果有人可以帮助我提前谢谢你
public class CustomAlertActivity extends Activity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().setBackgroundDrawable(new ColorDrawable(Color.argb(200, 255, 0, 0)));
...
overridePendingTransition(R.anim.slide_out_down, R.anim.slide_in_out_up);
}
}
slide_out_down.xml
<set
xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_interpolator" >
<translate
android:fromYDelta="-100%p"
android:toYDelta="0"
android:duration="1000" />"
/>
</set>
slide_in_out_up.xml
<set
xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_interpolator" >
<translate
android:fromYDelta="0"
android:toYDelta="-100%p"
android:duration="1000" />"
/>
</set>
manifest.xml
<activity android:name=".CustomAlertActivity"
android:theme="@android:style/Theme.Dialog"/>
Custom alert activity
我也在 MainActivity.class
上试试这个
public void onClick(View view) {
Intent intent = new Intent(MainActivity.this, CustomAlertActivity.class);
ActivityOptions options =
ActivityOptions.makeCustomAnimation(MainActivity.this, R.anim.slide_out_down, R.anim.slide_in_out_up);
startActivity(intent, options.toBundle());
}
解法:
public class CustomAlertActivity extends Activity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().setBackgroundDrawable(new ColorDrawable(Color.argb(200, 255, 0, 0)));
...
getWindow().getAttributes().windowAnimations = R.style.CustomDialog;
}
@Override
public void finish() {
super.finish();
overridePendingTransition(R.anim.slide_out_down, R.anim.slide_in_out_up);
}
}
styles.xml
<style name="CustomDialog" parent="@android:style/Theme.Dialog">
<item name="android:windowEnterAnimation">@anim/slide_out_down</item>
<item name="android:windowExitAnimation">@anim/slide_in_up</item>
</style>
在 styles.xml 中添加新样式,如下所示:
<style name="DialogTheme">
<item name="android:windowEnterAnimation">@anim/slide_out_down</item>
<item name="android:windowExitAnimation">@anim/slide_in_out_up</item>
</style>
然后像这样在点击时调用动画:
int style = R.style.DialogTheme
dialog.getWindow().getAttributes().windowAnimations = style;
希望如此,如果不行,请随时询问。
您需要重写 activity 的完成并调用相同的方法:
@Override
public void finish() {
super.finish();
overridePendingTransition(R.anim.slide_out_down, R.anim.slide_in_out_up);
}
我有自定义警报对话框 activity 我想在视图出现和退出时设置动画,第一个有效(出现时)但第二个无效,我不知道退出时如何动画(点击外面)如果有人可以帮助我提前谢谢你
public class CustomAlertActivity extends Activity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().setBackgroundDrawable(new ColorDrawable(Color.argb(200, 255, 0, 0)));
...
overridePendingTransition(R.anim.slide_out_down, R.anim.slide_in_out_up);
}
}
slide_out_down.xml
<set
xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_interpolator" >
<translate
android:fromYDelta="-100%p"
android:toYDelta="0"
android:duration="1000" />"
/>
</set>
slide_in_out_up.xml
<set
xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_interpolator" >
<translate
android:fromYDelta="0"
android:toYDelta="-100%p"
android:duration="1000" />"
/>
</set>
manifest.xml
<activity android:name=".CustomAlertActivity"
android:theme="@android:style/Theme.Dialog"/>
Custom alert activity
我也在 MainActivity.class
上试试这个 public void onClick(View view) {
Intent intent = new Intent(MainActivity.this, CustomAlertActivity.class);
ActivityOptions options =
ActivityOptions.makeCustomAnimation(MainActivity.this, R.anim.slide_out_down, R.anim.slide_in_out_up);
startActivity(intent, options.toBundle());
}
解法:
public class CustomAlertActivity extends Activity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().setBackgroundDrawable(new ColorDrawable(Color.argb(200, 255, 0, 0)));
...
getWindow().getAttributes().windowAnimations = R.style.CustomDialog;
}
@Override
public void finish() {
super.finish();
overridePendingTransition(R.anim.slide_out_down, R.anim.slide_in_out_up);
}
}
styles.xml
<style name="CustomDialog" parent="@android:style/Theme.Dialog">
<item name="android:windowEnterAnimation">@anim/slide_out_down</item>
<item name="android:windowExitAnimation">@anim/slide_in_up</item>
</style>
在 styles.xml 中添加新样式,如下所示:
<style name="DialogTheme">
<item name="android:windowEnterAnimation">@anim/slide_out_down</item>
<item name="android:windowExitAnimation">@anim/slide_in_out_up</item>
</style>
然后像这样在点击时调用动画:
int style = R.style.DialogTheme
dialog.getWindow().getAttributes().windowAnimations = style;
希望如此,如果不行,请随时询问。
您需要重写 activity 的完成并调用相同的方法:
@Override
public void finish() {
super.finish();
overridePendingTransition(R.anim.slide_out_down, R.anim.slide_in_out_up);
}