このリンクから取得: 最も簡単な方法は、アクティビティの上に半透明のアクティビティを追加することです。私は自分でテストを行いましたが、onStop
実際には呼び出されません:
透過的なアクティビティ:
public class TransparentActivity extends FragmentActivity {
@Override
protected void onCreate(Bundle arg0) {
super.onCreate(arg0);
setContentView(R.layout.transparent_layout);
}
}
transparent_layout には任意の単純なレイアウトを使用できますが、注意が必要な部分はマニフェストにあります。
<activity
android:name=".TransparentActivity"
android:theme="@style/Theme.Transparent" >
</activity>
styles.xml の場所:
<style name="Theme.Transparent" parent="android:Theme">
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowIsFloating">true</item>
<item name="android:backgroundDimEnabled">false</item>
</style>
次に、スターター アクティビティで:
public class MainActivity extends FragmentActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
findViewById(R.id.btnNext).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(MainActivity.this, TransparentActivity.class));
}
});
}
@Override
protected void onPause() {
super.onPause();
Log.d("TSTAct", "#onPause");
}
@Override
protected void onStop() {
super.onStop();
Log.d("TSTAct", "#onStop");
}
@Override
protected void onResume() {
super.onResume();
Log.d("TSTAct", "#onResume");
}
@Override
protected void onStart() {
super.onStart();
Log.d("TSTAct", "#onStart");
}
}
を開くTransparentActivity
と、Logcat でのみ確認できます。
07-10 23:35:28.323: D/TSTAct(27180): #onPause
onStop
電話がありません。