2011-10-03 16 views
0

480x800, 600x800, 600x1024 및 800x1280 해상도 레이아웃을 만들고 싶습니다.방향 문제를 해결하는 방법은 무엇입니까?

해상도가 600x800, 600x1024 및 800x1280이고 해상도가 480x800 인 경우 가로 방향 (세로 및 가로) 모두 표시해야 가로 모드 만 표시해야합니다.

지금은 두 가지 방향 모드를 모두 보여줍니다.

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.nga.swp" android:versionCode="1" android:versionName="1.0"> 

    <supports-screens android:resizeable="true" 
     android:largeScreens="true" android:normalScreens="false" 
     android:smallScreens="false" android:anyDensity="true" /> 

    <application android:icon="@drawable/icon" android:label="@string/app_name"> 

     <activity android:name=".MainActivity" 
      android:theme="@android:style/Theme.NoTitleBar.Fullscreen" 
      android:label="@string/app_name" android:windowSoftInputMode="adjustPan"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 

     <activity android:name=".PhraseListActivity" 
      android:theme="@android:style/Theme.NoTitleBar.Fullscreen" 
      android:label="@string/app_name" android:windowSoftInputMode="adjustPan" /> 

     <activity android:name=".ViewActivity" android:theme="@android:style/Theme.NoTitleBar" 
      android:label="@string/app_name" /> 

    </application> 

    <uses-permission android:name="android.permission.INTERNET" /> 
    <uses-permission android:name="android.permission.READ_LOGS" /> 
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
    <uses-permission android:name="android.permission.RECORD_AUDIO" /> 

    <uses-sdk android:minSdkVersion="8" /> 

</manifest> 

내 문제는 해상도 480x800로만 가로 모드를 표시하는 방법입니다. 내 menifest 파일에서 변경해야 할 사항. 모든

+0

질문을 다시 말하면 480x800 장치의 가로 모드를 제한하고 싶습니까? –

+0

화면 해상도 (600x800, 600x1024 및 800x1280)와 화면 해상도 480x800의 가로 모드 만 표시해야합니다. 지금은 480x800 화면 해상도를 제외한 모든 해상도와 작동 방식을 모두 보여줍니다. becoz 나는 그것을 위해 조경 모드가 필요합니다. – Archana

+0

@Laurent 480x800 장치의 가로 모드를 어떻게 제한 할 수 있습니까? – Archana

답변

2

조건부 레이아웃을 유지하는 가장 좋은 방법은/res 디렉토리에서 정규화 된 디렉토리 이름을 사용하는 것입니다.

하지만 귀하의 경우에는 귀하의 활동에 대한 android : screenOrientation을 변경해야합니다. 아아, 그것은 매니페스트에 있으며 활동 레이아웃에서 설정할 수없는 것 같습니다.

그래서, 당신은 당신의 활동 onCreate에서 코드를 사용해야한다고 생각합니다.

먼저 사용하여 화면의 크기 얻을 :

Display display = getWindowManager().getDefaultDisplay(); 
int width = display.getWidth(); 
int height = display.getHeight(); 

그런 다음 조건부 사용하여 화면 방향을 적응 :

if((width != 480) && (height !=800)) 
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); 

ActivityInfo.screenOrientation보기 더 방향 모드에 대한합니다.

0

먼저 사용하여 장치의 해상도를 확인하십시오

Display display = ((WindowManager) getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay(); 

그런 다음 display.getHeight()display.getWidth()를 사용하여 장치의 높이 & 폭을 얻는다.

다음 작업을 수행하는 것이 훨씬 쉽습니다.

방향을 확인하려면 OrientationListener을 사용할 수 있습니다.

1

난 당신이

layout-land 

layout 

그에서 XML을 넣을 수 있도록한다고 생각합니다. 그것에 대해

480X800

, 600x800, 600x1024과 800x1280 해상도 레이아웃 ..

당신이 drawable-ldip, drawable-mdip, drawable-hdip 폴더를하고 있다는 점에서 이미지를 넣어해야합니다.

Android 직접 처리 & 차별화 된 해상도.

관련 문제