어떻게 현재 화면 방향 갈 수 있나요?
는 활동이 onCreate()에 있도록 내 인생 로드할 사이에 초상화 속의 비능률 풍경 바꿔 볼 수 있을 때 나의 오리엔테이션 풍경에 나는 단지 국기들 제시하고 싶다.난 이미 내 레이아웃을 다루고 있는 layout-land xml다.
public void onConfigurationChanged(Configuration _newConfig) {
if (_newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
this.loadURLData = false;
}
if (_newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) {
this.loadURLData = true;
}
super.onConfigurationChanged(_newConfig);
}
onConfigurationChanged Over-riding 가로 방향에서 적재에서 내 layout-land xml을 막을 것입니다.
그냥 onCreate()에 내 기기 현재 방향을 받고 싶다.어떻게 이것을 살 수 있을까요?
Activity.getResources().getConfiguration().orientation
int orientation = this.getResources().getConfiguration().orientation;
if (orientation == Configuration.ORIENTATION_PORTRAIT) {
// code for portrait mode
} else {
// code for landscape mode
}
의 아문this
이Context
int rotation = getWindowManager().getDefaultDisplay().getRotation();
이하고 반대로 평상시처럼 모든 방향을 줄 것이다.
그리고 그것을 다루
int angle = 0;
switch (rotation) {
case Surface.ROTATION_90:
angle = -90;
break;
case Surface.ROTATION_180:
angle = 180;
break;
case Surface.ROTATION_270:
angle = 90;
break;
default:
angle = 0;
break;
}
일부 장치에서는void onConfigurationChanged()
충돌할 수 있다.사용자 현재 화면 방향을 얻기 위해 이 코드를 사용할 것이다.
public int getScreenOrientation()
{
Display getOrient = getActivity().getWindowManager().getDefaultDisplay();
int orientation = Configuration.ORIENTATION_UNDEFINED;
if(getOrient.getWidth()==getOrient.getHeight()){
orientation = Configuration.ORIENTATION_SQUARE;
} else{
if(getOrient.getWidth() < getOrient.getHeight()){
orientation = Configuration.ORIENTATION_PORTRAIT;
}else {
orientation = Configuration.ORIENTATION_LANDSCAPE;
}
}
return orientation;
}
그리고 사용하
if (orientation==1) // 1 for Configuration.ORIENTATION_PORTRAIT
{ // 2 for Configuration.ORIENTATION_LANDSCAPE
//your code // 0 for Configuration.ORIENTATION_SQUARE
}
getActivity().getResources().getConfiguration().orientation
이 명령 있는 풍경의 초상을int 값 1과 2를 반환합니다.
의미 있는 오리엔테이션 기술을 얻고 싶은 사람이 있는 경우(예: 에 전달됨)onConfigurationChanged(..)
저것들과reverseLandscape
,sensorLandscape
등)를 간단하게 사용할 수 있습니다.
저는 여러분 중 몇 분에게 관심을 가질 다른 대안을 제안하고 싶습니다.
android:configChanges="orientation|keyboardHidden"
는, 삽입되는 레이아웃을 명시적으로 선언하는 것을 나타내고 있습니다.
레이아웃 랜드와 레이아웃 폴더 덕분에 자동 주입을 유지하고 싶은 경우.onCreate에 추가하기만 하면 됩니다.
if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {
getSupportActionBar().hide();
} else if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) {
getSupportActionBar().show();
}
여기서는 전화기의 방향에 따라 액션바를 표시하거나 표시하지 않습니다.
액티비티 클래스에서 다음 방법을 사용합니다.
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
// Checks the orientation of the screen
if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
setlogo();// Your Method
Log.d("Daiya", "ORIENTATION_LANDSCAPE");
} else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) {
setlogoForLandScape();// Your Method
Log.d("Daiya", "ORIENTATION_PORTRAIT");
}
}
그런 다음 액티비티가 설정 변경을 처리함을 선언하려면 매니페스트 파일에서 적절한 요소를 편집하여android:configChanges
Atribute에는 처리할 Configuration을 나타내는 값을 지정합니다.사용 가능한 값은 의 매뉴얼에 기재되어 있습니다.android:configChanges
속성(가장 일반적으로 사용되는 값은 화면 방향이 변경될 때 다시 시작되지 않도록 하기 위한 "방향" 및 "방향"입니다.)[숨김(Hidden)]를 선택하면 키보드의 가용성이 변경되었을 때 재시작되지 않습니다).여러 Configuration 값을 pipe | 문자로 구분하여 Atribute에 선언할 수 있습니다.
<activity android:name=".MyActivity"
android:configChanges="orientation|keyboardHidden"
android:label="@string/app_name">
이상입니다!!
onConfigurationChanged 메서드를 덮어쓰고 기본 작업을 수행할 경우 덮어쓰기 메서드의 첫 번째 문으로 super.onConfigurationChanged()를 사용하는 것을 고려하십시오.
언급URL : https://stackoverflow.com/questions/3663665/how-can-i-get-the-current-screen-orientation
'programing' 카테고리의 다른 글
v-if 표시에 값을 증가시키는 방법 (0) | 2022.08.21 |
---|---|
C용 XML 파서 (0) | 2022.08.21 |
char *envp [ ]는 main() portable의 세 번째 인수입니까? (0) | 2022.08.21 |
Larabel의 VUE2 구성 요소 레지스터 (0) | 2022.08.21 |
Vue 2 - 소품 배열 기본 유형 설정 방법 (0) | 2022.08.21 |