1、设置Activity为Dialog类型或者透明
只需设置下Activity的style即可。
Dialog形式:
android:theme="@android:style/Theme.Dialog"
半透明的:
android:theme="@android:style/Theme.Translucent"
2、LinearLayout小知识
当LinearLayout的方向为vertical时,其layout_gravity属性设置为横向才有效。比如:left,right,center_horizontal等。
当LinearLayout的方向为horizontal时,其layout_gravity属性设置为横向才有效。比如:top,bottom,center_vertical等。
3、TranslateAnimation
1)TranslateAnimation移动后,会回到原位置。解决此问题,只需设置:
anim.setFillAfter(true);
2)位置移动后,触摸事件的响应还停留在原控件的位置。解决此问题,需要在动画完成后移动控件的位置:
anim.setAnimationListener(new AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
}
@Override
public void onAnimationRepeat(Animation animation) {
}
@Override
public void onAnimationEnd(Animation animation) {
try {
viewTop.clearAnimation();
RelativeLayout.LayoutParams params = new android.widget.RelativeLayout.LayoutParams(viewTop.getLayoutParams());
params.setMargins(0, 0, 0, viewTop.getHeight());
viewTop.setLayoutParams(params);
} catch (Exception e) {
e.printStackTrace();
}
}
});
注意:要移动的布局必须是一个RelativeLayout,我尝试用LinearLayout时报错~
如果只移动布局而anim.setFillAfter(false);则会出现闪屏,因为动画结束,该布局回复到原位置,然后才会执行移动操作~
5、防止系统屏幕截图
this.getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE);