有這樣的一個需求,客戶需要的屏幕是豎屏的格式。而手頭上的屏是硬件的橫屏。
修改的話,只能從軟件上入手。
文件位置:frameworks/base/core/java/android/content/pm/PackageParser.java
修改前:
//SCREEN_ORIENTATION_UNSPECIFIED 默認值,系統根據方向感應自動選擇屏幕方向
//SCREEN_ORIENTATION_PORTRAIT 正向豎屏,顯示的高比寬長(鎖死爲豎屏方向,不再讓方向感應起作用)
//SCREEN_ORIENTATION_REVERSE_PORTRAIT 反轉
if (a.info.resizeable) {
// Fixed screen orientation isn't supported with resizeable activities.
a.info.screenOrientation = ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED;
} else {
a.info.screenOrientation = sa.getInt(
R.styleable.AndroidManifestActivity_screenOrientation,
ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED);
}
修改後://做法是先豎屏,再反轉。就能得到正常的豎屏顯示
// if (a.info.resizeable) {
// //Fixed screen orientation isn't supported with resizeable activities.
// a.info.screenOrientation = ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED;
// } else {
// a.info.screenOrientation = sa.getInt(
// R.styleable.AndroidManifestActivity_screenOrientation,
// ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED);
// }
a.info.screenOrientation = sa.getInt(
R.styleable.AndroidManifestActivity_screenOrientation,
ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
a.info.screenOrientation = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT;
a.info.screenOrientation = ActivityInfo.SCREEN_ORIENTATION_REVERSE_PORTRAIT;