Android에서 투명한 활동을 만들려면 어떻게해야합니까?


7 Answers

그것은 이렇게 간다.

<activity android:name=".usual.activity.Declaration" android:theme="@android:style/Theme.Translucent.NoTitleBar" />
Question

나는 다른 활동 위에 투명한 활동을 만들고 싶다.

이것을 어떻게 할 수 있습니까?




매니페스트에서 다음과 같이 활동을 선언하십시오.

 <activity   
     android:name=".yourActivity"    
     android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen"/>

레이아웃에 투명한 배경을 추가하십시오.




방금 두 가지 일을했고, 내 활동을 투명하게 만들었습니다. 아래에 있습니다.

  1. 매니 페스트 파일에서 방금 activity 태그에 아래 코드를 추가했습니다.

    android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen"
    
  2. 그리고 그 활동을위한 기본 레이아웃 배경을 " # 80000000 "으로 설정했습니다. 처럼

    android:background="#80000000"
    

그것은 나를 위해 완벽하게 작동합니다.




두 가지 방법이 있습니다.

  1. Theme.NoDisplay 사용하기
  2. Theme.Translucent.NoTitleBar 사용하기

Theme.NoDisplay 사용 Theme.NoDisplay 는 여전히 작동하지만 오래된 Android 기기에서만 사용할 수 있습니다. Android 6.0 이상에서는 onCreate() (or, technically, before onResume()) 에서 finish() 를 호출하지 않고 Theme.NoDisplay를 사용 onCreate() (or, technically, before onResume()) 앱을 중단 합니다. 그래서 Theme.Translucent.NoTitleBar 를 사용하는 것이 좋습니다 .이 제한 을 두지 않습니다. "




필자는 새로운 안드로이드 개발자이기 때문에 조금 더 추가하고 싶었습니다. 받아 들여진 응답은 중대하다, 그러나 나는 약간 말썽으로 달렸다. colors.xml 파일에 색상을 추가하는 방법을 잘 모르겠습니다. 여기 어떻게 해야하는지입니다 :

colors.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
     <color name="class_zero_background">#7f040000</color>
     <color name="transparent">#00000000</color>
</resources>

내 원래 colors.xml 파일에서 나는 "drawable"이라는 태그를 가졌다.

<drawable name="class_zero_background">#7f040000</drawable>

그래서 저는 색깔에 대해서도 그렇게했습니다. 그러나 "@ color /"참조는 XML에서 태그 "color"를 찾는 것을 이해하지 못했습니다. 나는 다른 사람들을 돕기 위해 이것을 언급해야한다고 생각했다.




액티비티 배경 이미지를 투명하게 만듭니다. 또는 XML 파일에 테마를 추가하십시오.

<activity android:name=".usual.activity.Declaration" android:theme="@android:style/Theme.Translucent.NoTitleBar" />



대화 활동을 위해 나는 이것을 사용합니다 :

getWindow().getDecorView().setBackgroundResource(android.R.color.transparent);

그러나 활동의 기본보기를 보이지 않게 설정해야합니다. 그렇지 않으면 백그라운드의 모든보기가 표시되는 동안 배경이 보이지 않습니다.




onCreate 함수에서 setContentView 아래에 다음 행을 추가하십시오.

getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));


Related