package com.imps.tabletennis.tranning; public class ScreenScaleUtil { static final float sHpWidth=800; static final float sHpHeight=480; static final float whHpRatio=sHpWidth/sHpHeight; static final float sSpWidth=480; static final float sSpHeight=800; static final float whSpRatio=sSpWidth/sSpHeight; public static ScreenScaleResult calScale ( float targetWidth, float targetHeight ) { ScreenScaleResult result=null; ScreenOrien so=null; if(targetWidth>targetHeight) { so=ScreenOrien.HP; } else { so=ScreenOrien.SP; } System.out.println(so); if(so==ScreenOrien.HP) { float targetRatio=targetWidth/targetHeight; if(targetRatio>whHpRatio) { float ratio=targetHeight/sHpHeight; float realTargetWidth=sHpWidth*ratio; float lcuX=(targetWidth-realTargetWidth)/2.0f; float lcuY=0; result=new ScreenScaleResult((int)lcuX,(int)lcuY,ratio,so); } else { float ratio=targetWidth/sHpWidth; float realTargetHeight=sHpHeight*ratio; float lcuX=0; float lcuY=(targetHeight-realTargetHeight)/2.0f; result=new ScreenScaleResult((int)lcuX,(int)lcuY,ratio,so); } } if(so==ScreenOrien.SP) { float targetRatio=targetWidth/targetHeight; if(targetRatio>whSpRatio) { float ratio=targetHeight/sSpHeight; float realTargetWidth=sSpWidth*ratio; float lcuX=(targetWidth-realTargetWidth)/2.0f; float lcuY=0; result=new ScreenScaleResult((int)lcuX,(int)lcuY,ratio,so); } else { float ratio=targetWidth/sSpWidth; float realTargetHeight=sSpHeight*ratio; float lcuX=0; float lcuY=(targetHeight-realTargetHeight)/2.0f; result=new ScreenScaleResult((int)lcuX,(int)lcuY,ratio,so); } } return result; } }