关于设置动画效果不显示的问题
来源:4-4 设置动画(选修)
_TEEK_0
2021-03-11 17:50:09
请帮我看看我的动画是加上了的 但是运行是没有任何动画效果 还是一下子就弹出来了
translate.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:fromXDelta="0"
android:toXDelta="0"
android:fromYDelta="300"
android:toYDelta="0"
android:duration="2000"
></translate>
</set>
styles.xml
<resources>
<style name="mydialog" parent="android:style/Theme.Dialog">
<!--设置标题 没有标题-->
<item name="android:windowNoTitle">true</item>
<!--设置背景 透明背景-->
<item name="android:windowBackground">@android:color/transparent</item>
</style>
<style name="translate_anim">
<item name="android:windowEnterAnimation">@anim/translate</item>
</style>
</resources>
MainActivity调用动画
//设置PopupWindow
public void showPopupWindow(View view){
//将整个布局变成一个View 准备弹窗所需要的视图对象
View v = LayoutInflater.from(this).inflate(R.layout.popup_layout, null);
//1.实例化PopupWindow对象
//参数1:用在弹窗中的view
//参数2,3:弹窗的宽高
//参数4:(focusable) 能否获取焦点 (选择行加入,不加这个参数也没事)
PopupWindow window = new PopupWindow(v,270,45,true);
//2.设置 背景 动画 。。。。。。
//设置背景
window.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));//设置背景为透明色的背景
//设置能响应外部的点击事件
window.setOutsideTouchable(true);//能响应外部
//设置弹窗能响应点击事件
window.setTouchable(true);
//动画
/**
* 1.创建动画资源
* 2.创建一个style应用动画资源
* 3.对当前弹窗的动画风格设置为 步骤2 的资源索引
*/
window.setAnimationStyle(R.style.translate_anim);
//3.显示
//参数1:锚 ..加了这个参数会显示在参数控件正下方
//参数2,3:想对于锚在xy方向上的偏移量
//window.showAsDropDown(view);
window.showAsDropDown(view,-270,0);
//为弹窗中的文本添加点击事件
v.findViewById(R.id.choose).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(MainActivity.this,"点击了选择",Toast.LENGTH_SHORT).show();
window.dismiss();//这个方法啊 是让对话框隐藏掉
}
});
v.findViewById(R.id.choose_all).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(MainActivity.this,"点击了全选",Toast.LENGTH_SHORT).show();
window.dismiss();
}
});
v.findViewById(R.id.copy).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(MainActivity.this,"点击了复制",Toast.LENGTH_SHORT).show();
window.dismiss();
}
});
}
1回答
同学,你好!老师测试你的代码是有动画效果的。至于你为什么显示不出来,可以从以下进行排查:1)把手机上原来的APP手动删除,修改java某行,那怕只增加一个空行也可以,保存后再运行。这是由于有些时候,只修改xml不变java文件,AS检测不到代码的改动,它没有重新生成APP。 2)styles.xml文件的位置没有没问题?需要放在values文件夹下,而不是values-xxx下。translate.xml也是一样的,放在anim下。祝:学习愉快!
相似问题