在android中给Dialog设置动画的方法我只找到Dialog.getWindow().setWindowAnimation(int resID); 这样不是只能在styles里用xml定义动画吗? 但是我现在想要先用程序计算出一个屏幕上的点,在让Dialog从该点开始执行scaleAnimation。 我如何给我Dialog的动画设置起始点之类的参数呢?
public class CustomDialog extends Dialog { public CustomDialog (Context context) { WindowManager.LayoutParams para = getWindow().getAttributes(); para.x = 0; //设置起始点 para.y = 0; para.width = WindowManager.LayoutParams.MATCH_PARENT; para.windowAnimations = android.R.style.Animation; para.gravity = Gravity.TOP | Gravity.LEFT; } }
para.width = WindowManager.LayoutParams.MATCH_PARENT;这句,dialog最后不是相对屏幕居中了,如果加上这一句,动画的起始点就变成中心点而不是(x,y)了,感觉android在绘制Dialog的时候是根据Dialog的最终大小来确定绘制的中心点的,不知道有没有其他的办法~
|