当前位置: 首页 > news >正文

旅游网站建设项目规划书网页制作教程田田田田田田田田田田田田田田

旅游网站建设项目规划书,网页制作教程田田田田田田田田田田田田田田,网站开发招聘最新消息,wordpress首页描述本篇博客是记录自己解决开机动画与系统方向不一致方案代码,思路:在系统参数根目录自定义persist.sys.hwrotationxrd0来作为动画方向,当修改系统方向时同时修改这个参数,当系统启动加载动画时在根据这个来旋转动画方式以保证动画方…

本篇博客是记录自己解决开机动画与系统方向不一致方案代码,思路:在系统参数根目录自定义persist.sys.hwrotationxrd=0来作为动画方向,当修改系统方向时同时修改这个参数,当系统启动加载动画时在根据这个来旋转动画方式以保证动画方式与系统方式一致。

实现步骤如下:

一、在rk3288\device\rockchip\rk3288\system.prop 内创建persist.sys.hwrotationxrd=0 与屏幕主屏默认方式一致

二、在rk3288\frameworks\base\cmds\bootanimation\BootAnimation.cpp 内修改动画方式

status_t BootAnimation::readyToRun() {mAssets.addDefaultAssets();
......DisplayInfo dinfo;status_t status = SurfaceComposerClient::getDisplayInfo(dtoken, &dinfo);if (status)return -1;// create the native surface
//    int curWidth = dinfo.w;
//    int curHeight = dinfo.h;
//    if(mShutdown && mReverseAxis){
//        curWidth = dinfo.h;
//        curHeight = dinfo.w;
//    }//start add superchar hwrotationaa[PROPERTY_VALUE_MAX];property_get("persist.sys.hwrotationxrd",hwrotationaa,"0");ALOGE("hwrotation::%s" , hwrotationaa);int orient = atoi(hwrotationaa)/90;sp<SurfaceControl> control = session()->createSurface(String8("BootAnimation"),(orient ==1 || orient==3) ?dinfo.h:dinfo.w,(orient ==1 || orient==3) ?dinfo.w:dinfo.h, PIXEL_FORMAT_RGB_565);//    sp<SurfaceControl> control = session()->createSurface(String8("BootAnimation"),
//                                                          dinfo.w, dinfo.h, PIXEL_FORMAT_RGB_565);if(orient == 1 || orient == 3){Rect destRect(dinfo.h, dinfo.w);mSession->setDisplayProjection(dtoken,orient,destRect,destRect);}ALOGE("eliot BootAnimation::readyToRun22222222 add end\n");//end add super
......

三、在rk3288\frameworks\native\services\surfaceflinger\DisplayDevice.cpp 内初始化动画方向

 // Name the display.  The name will be replaced shortly if the display// was created with createDisplay().switch (mType) {case DISPLAY_PRIMARY:mDisplayName = "Built-in Screen";break;case DISPLAY_EXTERNAL:mDisplayName = "HDMI Screen";break;default:mDisplayName = "Virtual Screen";    // e.g. Overlay #nbreak;}//start add superint defaultOrientation = 0;char property[PROPERTY_VALUE_MAX];property_get("persist.sys.hwrotationxrd", property, "0");defaultOrientation = atoi(property);switch(defaultOrientation) {case 0:defaultOrientation = DisplayState::eOrientationDefault;break;case 90:defaultOrientation = DisplayState::eOrientation90;break;case 180:defaultOrientation = DisplayState::eOrientation180;break;case 270:defaultOrientation = DisplayState::eOrientation270;break;default:defaultOrientation = DisplayState::eOrientationDefault;break;}// initialize the display orientation transform.setProjection(defaultOrientation, mViewport, mFrame);//end add super// initialize the display orientation transform.
//    setProjection(DisplayState::eOrientationDefault, mViewport, mFrame);#ifdef NUM_FRAMEBUFFER_SURFACE_BUFFERSsurface->allocateBuffers();
#endif
}

四、上层修改动画方向

1、rk3288\frameworks\base\services\core\java\com\android\server\policy\PhoneWindowManager 修改

.....//add start 2024-8-2private int mDefaultOrientation = Surface.ROTATION_0;@Overridepublic void setInitialDisplaySize(Display display, int width, int height, int density) {// This method might be called before the policy has been fully initialized// or for other displays we don't care about.if (mContext == null || display.getDisplayId() != Display.DEFAULT_DISPLAY) {return;}
....// Only force the default orientation if the screen is xlarge, at least 960dp x 720dp, per// http://developer.android.com/guide/practices/screens_support.html#rangemForceDefaultOrientation = longSizeDp >= 960 && shortSizeDp >= 720 &&res.getBoolean(com.android.internal.R.bool.config_forceDefaultOrientation) &&// For debug purposes the next line turns this feature off with:// $ adb shell setprop config.override_forced_orient true// $ adb shell wm size reset!"true".equals(SystemProperties.get("config.override_forced_orient"));//start add superString defaultOrientation = SystemProperties.get("persist.sys.hwrotationxrd", "0");if("0".equals(defaultOrientation)) {mDefaultOrientation = Surface.ROTATION_0;} else if("90".equals(defaultOrientation)) {mDefaultOrientation = Surface.ROTATION_90;} else if("180".equals(defaultOrientation)) {mDefaultOrientation = Surface.ROTATION_180;} else if("270".equals(defaultOrientation)) {mDefaultOrientation = Surface.ROTATION_270;} else {mDefaultOrientation = Surface.ROTATION_0;}//end add super}.....@Overridepublic int rotationForOrientationLw(int orientation, int lastRotation) {switch (orientation) {case ActivityInfo.SCREEN_ORIENTATION_PORTRAIT:// Return portrait unless overridden.if (isAnyPortrait(preferredRotation)) {return preferredRotation;}return mPortraitRotation;case ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE:// Return landscape unless overridden.if (isLandscapeOrSeascape(preferredRotation)) {return preferredRotation;}return mLandscapeRotation;case ActivityInfo.SCREEN_ORIENTATION_REVERSE_PORTRAIT:// Return reverse portrait unless overridden.if (isAnyPortrait(preferredRotation)) {return preferredRotation;}return mUpsideDownRotation;case ActivityInfo.SCREEN_ORIENTATION_REVERSE_LANDSCAPE:// Return seascape unless overridden.if (isLandscapeOrSeascape(preferredRotation)) {return preferredRotation;}return mSeascapeRotation;case ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE:case ActivityInfo.SCREEN_ORIENTATION_USER_LANDSCAPE:// Return either landscape rotation.if (isLandscapeOrSeascape(preferredRotation)) {return preferredRotation;}if (isLandscapeOrSeascape(lastRotation)) {return lastRotation;}return mLandscapeRotation;case ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT:case ActivityInfo.SCREEN_ORIENTATION_USER_PORTRAIT:// Return either portrait rotation.if (isAnyPortrait(preferredRotation)) {return preferredRotation;}if (isAnyPortrait(lastRotation)) {return lastRotation;}return mPortraitRotation;default:// For USER, UNSPECIFIED, NOSENSOR, SENSOR and FULL_SENSOR,// just return the preferred orientation we already calculated.if (preferredRotation >= 0) {return preferredRotation;}//  return Surface.ROTATION_0;return mDefaultOrientation;// add modify 2024-8-2}}}

2、rk3288\frameworks\base\services\core\java\com\android\server\wm\WindowManagerService.java 修改

	private WindowManagerService(Context context, InputManagerService inputManager,boolean haveInputMethods, boolean showBootMsgs, boolean onlyCore) {......//add start 2024-8-2String defaultOrientation = SystemProperties.get("persist.sys.hwrotationxrd", "0");if("0".equals(defaultOrientation)) {mRotation = Surface.ROTATION_0;} else if("90".equals(defaultOrientation)) {mRotation = Surface.ROTATION_90;} else if("180".equals(defaultOrientation)) {mRotation = Surface.ROTATION_180;} else if("270".equals(defaultOrientation)) {mRotation = Surface.ROTATION_270;} else {mRotation = Surface.ROTATION_0;}//add end 2024-8-2}

到此修改就完成了,本文是参照Android 高通7.1系统默认横屏显示(无G-sensor)_高通 android7 横竖屏显示-CSDN博客

修改完成,感谢!

http://www.yayakq.cn/news/410789/

相关文章:

  • 上海手机网站建设电话咨询wordpress 文章列表插件
  • 高端网站建设口碑页面设计分析
  • 阿里指数网站福州开发网站公司
  • 域名注册哪个网站便宜wordpress脚本
  • 单页网站优化做网站的工作要求
  • 网站建设公司湖南工信部网站备案查通知
  • 做网站思想在线创建网站免费网站
  • 广告设计网站排行榜前十名有哪些自定义网站建设团队
  • 南京网站开发选南京乐识赞旅游网站建设方案两百字
  • 网站都是哪里找的wordpress 引入js
  • 新网站开发费用网站开发能封装成app吗
  • wordpress整个网站响应速度慢网络推广公司取名
  • 建设个人银行网站南宁网站建设是什么意思
  • 吉林专业做网站太原网站开发团队
  • 贷款公司如何做网站注册公注册公司流程和费用
  • 农业行业网站模板wordpress模板双响
  • jsp开发的网站外贸网站建设价格怎么样
  • 德国购物网站大全经典的公司简介
  • 广州网站推广wordpress 更改端口
  • 郑州网站优化汉狮网络天津企业网站建设
  • 网站建设和网络优化商业网站建设案例课程下载
  • mmd怎么做下载网站什么是品牌网站建设
  • 太原手机网站建设做3d任务的网站
  • vps主机可以做几个网站有没有网站做lol网站的
  • 网站吗杭州 手机网站
  • 石家庄住房和城乡建设局网站广西南宁市有哪些网络公司
  • 福州专业网站设计团队wordpress 有点慢
  • 天津网站seo策划wordpress加密
  • 做旅游销售网站平台ppt世界工厂网怎么样
  • 投资做网站win8风格网站开发实例