2010-04-22 3 views
6

내 사례는 가로 카메라 미리보기를 위해 오버레이 컨트롤러 활동을 작성하고 있습니다. 나는 투명한 주제를 쓰는 데 필요한 몇 가지 지침서를 따라 갔다. 활동은 투명해야하지만 검정색 배경입니다.

그래서 내 입술/값/style.xml은 다음과 같습니다

<resources> 

    <style name="Theme" parent="android:Theme" /> 

    <style name="Theme.Transparent"> 
     <item name="android:windowBackground">@drawable/transparent_background</item> 
    </style> 

    <drawable name="transparent_background">#00000000</drawable> 

</resources> 

활동 조각 : 내 루트 활동에서이 활동을 시작하면

<activity android:name=".CameraPreview" 
     android:label="Camera" 
     android:screenOrientation="landscape" 
     android:theme="@android:style/Theme.NoTitleBar.Fullscreen"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 

    <activity android:name=".Controlls" 
       android:label="Controlls" 
       android:screenOrientation="portrait" 
       android:theme="@android:style/Theme.Translucent"> 
    </activity> 

는, 레이아웃이 제대로 그려됩니다 그러나 배경은 검은 색으로 유지됩니다. 대신 @android:style/Theme.Translucent을 사용해 보았습니다.하지만이 테마는 호출하는 활동 (가로 방향)에서 원하는 방향이 아닌 방향을 상속합니다.

편집 :

는 세로 방향으로 올바르게 미리보기를 표시하지 않는 한 가로보기로 설정되어 카메라 미리보기를 들고 응용 프로그램입니다. (old google bug report 참조)

내가하고 싶었던 것은 카메라 표면 홀더 앞에 사용자 상호 작용 인터페이스를위한 독립적 인 활동을 넣는 것이 었습니다 (이 작업은 '세로'또는 '센서'로 설정해야 함)

답변

2

this blog post에 따라 맞춤형 대신 기본 제공 @android:style/Theme.Translucent을 사용해보세요. 나는이 일을 직접하려고하지 않았기 때문에, 거기에 대해 쓰여진 기술이 효과가 있는지 없는지 나는 알지 못한다.

+0

@android : 스타일/Theme.Translucent 투명하지만 뷰를 기본 액티비티 방향으로 고정합니다 (내 가로 뷰 카메라 미리보기). 이보기는 세로이어야합니다. –

+0

그건 배경과 아무 관련이 없습니다. 액티비티가 오리 엔테이션을 변경하는 것을 원하지 않으면 매니페스트에서 'android : screenOrientation = "portrait"와 같은 다른 방법으로 처리됩니다. – CommonsWare

+0

미안하지만, 나는 그것을 언급하지 않았다. 그러나 그것이 내가했던 정확하게 것이다. (내 매니페스트가있는 게시물을 편집 할 것입니다.) 지금까지 귀하의 조언을 주셔서 감사합니다. –

1

위의 스타일 설명에 대한 또 다른 중요한 하위 요소는 <item name="android:windowIsTranslucent">true</item>이 부족하다는 것을 알았습니다.

문제 : 자식 요소도 하나를 호출하여 활동의 방향을 동기 유발

. (@android:style/Theme.Translucent와 같은 효과)

1

(반투명 배경 및 화면 방향과 관련하여) 설명하는 것과 동일한 문제가 발생했지만 결국에는 이것이 어떻게 작동 하는지를 확인했습니다. 실제로 그것은 실제로 이런 식으로 작동한다는 것을 이해합니다. 나는 인물과 풍경을 혼합하는 것을 지원하는 어떤 스크린 기반 시스템도 생각할 수 없다. 그렇다면 왜 안드로이드가 필요 할까?

내가 볼 수있는 모든 활동은 매니페스트 파일의 속성에 관계없이 같은 방향이어야합니다. 모두가 "sensor"으로 설정되면 모두 변경됩니다. 하나가 세로 또는 가로로 고정되어 있으면 나머지는 따라야합니다 (그리고 마지막으로 설정하는 사람은 누구나 "승리"합니다).

나는이 그냥이 :

0

제거 및 문서화에이 발생하지 않았 음을 개발자에게 매우 명백했다 추측 모든 일

@Override 
public void onAttachedToWindow() {} 
+4

코드를 자세히 설명하십시오. –

관련 문제