转载请注明出处,原文链接:https://blog.csdn.net/u013642500/article/details/80134675
【功能介绍】
打开新界面还能看到上一个界面内容,上一个界面变暗,而且只是能看到,无法响应上一个界面的任何内容。
【原理说明】
实际上是打开了一个新的Activity,这个新的Activity是透明的,然后设置新Activity的最外层布局的Background设置成半透明。
【具体操作】
1、首先在AndroidMaifest中定义新Activity的Them为透明主题。
(1)全屏、无标题栏
<activity
android:name=".testActivity"
android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen" />
(2)非全屏、无标题栏
<activity
android:name=".testActivity"
android:theme="@android:style/Theme.Translucent.NoTitleBar" />
(3)非全屏、有标题栏
<activity
android:name=".testActivity"
android:theme="@android:style/Theme.Translucent" />
2、在新Activity.java中修改继承类为Activity类。
public class testActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test);
}
}
3、设置layout最外层布局的background。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayoutLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".testActivity"
android:background="#55000000">
</LinearLayoutLayout>
其中,重点语句是:
android:background="#55000000"
55是不透明数值,00是全透明,ff是不透明。