浮层引导页Activity

第一步:创建一个ProgressActivty

第二步:创建一个自定义的style风格

在values文件夹下的styles文件中创建一个新的style节点

<style name="MyDialog">  
         <item name="android:windowBackground">@color/transparent_background</item>  
         <item name="android:windowIsTranslucent">true</item>  
         <item name="android:windowNoTitle">true</item>  
         <item name="android:backgroundDimEnabled">true</item>
 </style>

其中

<item name="android:windowBackground">@color/transparent_background</item>  
<item name="android:windowIsTranslucent">true</item> 

这两个节点需要结合使用,设置窗口可以透明
这里需要创建一个自定义color属性,如果用transparent则是完全透明的,我们创建一个color设置为半透明的
在vaules文件加下创建color.xml文件

<resources>
    <color name="transparent_background">#50000000</color>
</resources>

第三步:在配置文件中修改这个Activity的Style

调用自定义的style风格,这个activity就会半透明显示到另外一个activity上

<activity
     android:name="com.example.day01_test.ProgressActivity"
     android:theme="@style/MyDialog"
    >
</activity>

第四步:在ProgressActivty编写逻辑

可以根据控件finish这个Activity,或者跳转到另外的Activity,同时要finish;
如果是进度条类型的话,需要在别的Activity中关闭这个Activity,需要在ProgressActivty中定义一个静态变量,然后用handler进行监视,也可以使用广播,和监听器.

public class ProgressActivity extends Activity {
    //定义一个公共静态变量
    public static int flag=0;
    private Timer timer;
    private Handler handler=new Handler(){
        public void handleMessage(android.os.Message msg) {
        //如果在别的类中修改为1的话,就关闭这个activity,同时要设置为flag为0,关闭消息,取消timer
            if(msg.what==1){
                flag=0;
                handler.removeCallbacksAndMessages(null);
                timer.cancel();
                finish();
            }
        };
    };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.activity_progress);
        //不断的进行监听,如果flag被修改为1的话,说明别的activity要关闭当前的弹窗,就发送一个消息关闭弹窗
        timer = new Timer();
        timer.schedule(new TimerTask() {

            @Override
            public void run() {
                if(flag==1){
                    handler.sendEmptyMessage(1);
                }
            }
        }, 0, 100);
    }
    @Override
    public void onBackPressed() {
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值