Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android 4.1-4.2 默認窗體旋轉180 度代碼

Android 4.1-4.2 默認窗體旋轉180 度代碼

編輯:關於Android編程

1.設置屬性值

system/build.prop文件中加入 ro.sf.hwrotation= 80

2.設置窗體默認顯示方向

frameworks/native/services/surfaceflinger/SurfaceFlinger.cpp文件中找到方法

setDisplayHardware

在switch中加入

case 180:

displayOrientation = ISurfaceComposer::eOrientation180;

break;

3.設置窗體動畫旋轉方向

a > 在frameworks/base/core/java/android/view/Surface.java 加入方法

/**

* @hide

*/

public static int getDefaultRotation(){

return android.os.SystemProperties.getInt("ro.sf.hwrotation", 0);//180

}

 

/**

* @hide

*/

public static int getDefaultRotationIndex(){

int rotation = getDefaultRotation();

switch(rotation){

case 0:

return ROTATION_0;

case 90:

return ROTATION_90;

case 180:

return ROTATION_180;

case 270:

return ROTATION_270;

}

return ROTATION_0;

}

 

b > 在

frameworks/base/services/java/com/android/server/vm/ScreenRotationAnimation.java 文件中找到(android4.1) 方法setRotation

或(android4.2)方法setRotationInTransaction

修改 deltaRotation(rotation,Surface.ROTATION_0);

deltaRotation(rotation,Surface. getDefaultRotationIndex());

 

3 .修改最近程序視圖方向

frameworks/base/packages/systemui/src/com/android/systemui/RecentsPanelView.java 文件中修改如下

private int mThumbnailHeight;//add

在方法中添加

public void updateVoluesFromResources(){

………………………………………………..

mThumbnailHeight = Math.round(res.getDimension(R.dimen.status_bar_recents_thumbnail_height));//add

}

 

在方法中添加

private void updateThumbnail(…) {

 

else {

Matrix scaleMatrix = new Matrix();

float scale = mThumbnailWidth / (float) thumbnail.getWidth();

scaleMatrix.postScale(scale, scale);//setScale

h.thumbnailViewImage.setScaleType(ScaleType.MATRIX);

h.thumbnailViewImage.setImageMatrix(scaleMatrix);

//add

if(Surface.getDefaultRotation() > 0){

Matrix rotateMatrix = new Matrix();

rotateMatrix.setRotate(Surface.getDefaultRotation(),mThumbnailWidth/2,mThumbnailHeight/2);

h.thumbnailViewImage.setImageMatrix(rotateMatrix);

}

//add end

}

 

4.修改截屏圖片方向

frameworks/base/pacikages/systemui/src/com/android/systemui/GlobalScreenshot.java 文件中找到takeScreenshot方法

修改 float degrees = getDegreesForRotation(mDisplay.getRotation());

int rotation = mDisplay.getRotation();

if(Surface.getDefaultRotation() > 0){

rotation = (rotation + Surface.getDefaultRotationIndex())%4;

}

float degrees = getDegreesForRotation(rotation);

 

 

 

OK 這樣就完成屏幕旋轉180度

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved