[Android] 背景が半透明の Activity を作る

「Game Win !!」とかちょっとした画面で設定させたり、情報を見せたりしたい、そんな時に、背景を半透明にしてクールなダイアログ風のActivityを作れます。

ボタンをタップして、新しい半透明背景のActivityに画面遷移した例

translucent01
translucent02

Android Studio 2.1.1
Android 6.0

 

sponsored link

Theme の設定

 
res/values にあるstyles.xmlに新しくThemeを追加します。
android:style/Theme.Translucent から継承したThemeを作成して、transparameter で透明度を調整します。
ここでは「#7f」で半透明にしています。
 
res/values/styles.xml

 
画面遷移した先のActivityにこのThemeを設定します。
AndroidManifest.xml

 
新しいThemeではandroid:windowNoTitleをtrueに設定してタイトルバーを消しているので、Activity の継承は AppCompatActivity ではなく Activity にしないとエラーとなります
 

MainActivity.java
ここではボタンを設定して画面遷移するだけです

 
遷移先のActivityです
TranslucentActivity.java

 

レイアウトのactivity_main.xmlでは画像表示とボタンです
activity_main.xml

 
遷移先のレイアウトは画面の上下が余る画像を表示します
activity_translucent.xml

 

Activityを使ったダイアログ風のスクリーンが作れました。
 
背景を半透明にしたActivityだけを起動させるとこうなります。
 
translucent03

AndroidのTop画面を背景にした画像表示となっています。