2016-09-19 5 views
0

코드가 SampleActivity extends AppCompatActivity 인 경우 onCreate()에서 방향을 ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE으로 변경하십시오.AppCompatActivity에서 너비와 높이가 잘못된

화면 크기가 반대가됩니다. 따라 오니 내 AndroidManifext.xml

<activity 
    android:name=". SampleActivity" 
    android:configChanges="keyboardHidden|orientation|screenSize" 
    android:screenOrientation="portrait" 
    android:theme="@style/DefaultActivityTheme" 
    android:windowSoftInputMode="stateAlwaysHidden|adjustResize"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN"/> 
      <category android:name="android.intent.category.LAUNCHER"/> 
     </intent-filter> 
</activity> 

내 SampleActivity입니다.

public class SampleActivity extends AppCompatActivity 
{ 

    @Override 
    protected void onCreate(@Nullable Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_screen); 
     setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); 
    } 

    @Override 
    protected void onResume() 
    { 
     super.onResume(); 
    } 
} 
+0

무엇이 잘못되어 반대 하시겠습니까? 네가 얻은 결과는 무엇인가? 'Activity'의'onCreate()'코드를 보여줍니다. –

+0

@ th3pat3l 너비는 세로 방향의 너비이고 높이는 가로 방향의 높이입니다.하지만 가로 방향으로 바뀝니다. –

+0

활동 코드를 보여주십시오. 화면을 회전하기 전에 폭과 높이를 저장하는 경우 해당 값이 전환됩니다. –

답변

0

좋아요. 따라서 너는 가로 세로 또는 가로와 관련이 없습니다. 전화가 이해하는 바로 그 것이다. 당신이 지금 어떤 알고 싶은 경우에, 여기 당신이 할 수있는 작업은 다음과 같습니다 화면이 가로 아닌 경우 false 경우이 방법은, true를 반환합니다

public boolean isLandscape() { 
    DisplayMetrics displayMetrics = new DisplayMetrics(); 
    boolean isLandscape = false; 
    Display d = getWindowManager().getDefaultDisplay(); 

    Point size = new Point(); 
    d.getSize(size); 

    if(size.x > size.y) { 
     isLandscape = true; 
    } 

    return isLandscape; 
} 

.

+0

반환하지만 AppCompatActivity 확장 잘못된 이유를 알고 있지만 확장 FragmentActivity 괜찮아요 알고 싶습니다. –

+1

그러면 너비와 높이 값을 가져 오는 방법에 대한 코드를 게시해야합니다. 우리는 잘못된 값을 얻는 방법을 알 수 없다. –

+0

@EgosZhang'AppCompatActivity'는'FragmentActivity'를 확장하고, 안드로이드 소스 코드를 통해 검색하는 것을 환영합니다. –

관련 문제