您的位置:首页 > 其它

浮层引导页Activity

2016-05-13 10:58 316 查看

第一步:创建一个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() {
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: