可以使用Recevier启动透明Activity来实现
Recevier 实现
网络上很多
具体Receiver的实现
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | package com.example.myapplication; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; public class MyReceiver extends BroadcastReceiver { public void onReceive(Context context, Intent intent) { if (intent.getAction().equals("android.intent.action.BOOT_COMPLETED")) { Intent i = new Intent(context, DialogActivity.class); i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(i); } } } |
透明 Activity 实现
styles.xml 中加入, 透明 sytle
1 2 3 4 5 6 7 8 9 | <style name="Theme.AppCompat.Translucent"> <item name="windowActionBar">false</item> <item name="windowNoTitle">true</item> <item name="android:windowNoTitle">true</item> <item name="android:windowBackground">@android:color/transparent</item> <item name="android:colorBackgroundCacheHint">@null</item> <item name="android:windowIsTranslucent">true</item> <item name="android:windowAnimationStyle">@android:style/Animation</item> </style> |
然后在
AndroidManifest.xml
中你想要启动的那个activity
的Theme
设置为Theme.AppCompat.Translucent
1 2 3 | <activity android:name=".DialogActivity" android:theme="@style/Theme.AppCompat.Translucent"> </activity> |
对话框实现
这个网上也很多
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | package com.example.myapplication; import android.content.DialogInterface; import android.support.v7.app.AlertDialog; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; public class DialogActivity extends AppCompatActivity { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_dialog); AlertDialog dialog = new AlertDialog .Builder(this) .setTitle("title") .setMessage('content') .setPositiveButton("确定", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { finish(); } }) .create(); dialog.show(); } } |