在学习的路上总是困难重重,困难总比办法多~~~~。
网站建设哪家好,找成都创新互联!专注于网页设计、网站建设、微信开发、小程序设计、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了白城免费建站欢迎大家使用!
我们app进合约就有蒙层,蒙层消失的逻辑是点空白处消失,因为有这一层toast,空白处定位不到任何内容,appium中的tap方法不能用。
此时我们只需要在脚本中调用adb命令,通过adb的input tap来点击任意一个坐标,就能达到点击空白处蒙层消失的效果。
一般设置半透明就可以:
/**
* 设置添加屏幕的背景透明度
* @param bgAlpha
*/
public void backgroundAlpha(float bgAlpha)
{
WindowManager.LayoutParams lp = activity.getWindow().getAttributes();
lp.alpha = bgAlpha; //0.0-1.0
activity.getWindow().setAttributes(lp);
}
这两天要修改一个需求就是去除锁屏解锁后的蒙层(即解开锁后黑黑的蒙蒙的一层),之前就有想处理这个效果,把他去掉但是没有找到位置,这两天又有了这个需求了,解决了,记录一下。
其中修改的地方为:/src/com/android/systemui/keyguard/KeyguardViewMediator.java
private void tryKeyguardDone() {
if (KeyguardConstants.DEBUG_KEYGUARD_PROCESS){
StringBuilder builder = new StringBuilder();
builder.append("tryKeyguardDone mKeyguardDonePending=");
builder.append(mKeyguardDonePending);
builder.append("; mHideAnimationRun=");
builder.append(mHideAnimationRun);
builder.append("; mHideAnimationRunning=");
builder.append(mHideAnimationRunning);
Log.d(TAG, builder.toString());
}
if (!mKeyguardDonePending mHideAnimationRun !mHideAnimationRunning) {
//wangdy add for setting the scrimview's alpha_2019-06-27
mStatusBarKeyguardViewManager.setScrimBehindViewAlpha(0f);
//wangdy add for setting the scrimview's alpha_2019-06-27
handleKeyguardDone();
} else if (!mHideAnimationRun) {
mHideAnimationRun = true;
mHideAnimationRunning = true;
mStatusBarKeyguardViewManager.startPreHideAnimation(mHideAnimationFinishedRunnable);
}
}
这边加注释的就是我添加的修改的地方
下边是调用的引用添加的地方:
/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java
//wangdy add for setting the scrimview's alpha_2019-06-27
public void setScrimBehindViewAlpha(float alpha){
if(mStatusBar!=null mStatusBar.mScrimController!=null mStatusBar.mScrimController.mScrimBehind != null) {
mStatusBar.mScrimController.mScrimBehind.setViewAlpha(alpha);
}
}
这样就可以,其中上边添加的地方是系统在”解锁完成向上滑动的动画“后修改这个ScrimView的透明度alpha让它变成0,这样其实后边还有个系统的设置的透明度动画,所以你看到的解锁后边的蒙层就是上滑动动画后的这里有个耗时,然后到的蒙层动画,所以如果提前把这个蒙层设置为透明度为0,就不会有动画了,提前设置为0,就看不见蒙层了。