Activity做伪弹窗

Activity做伪弹窗


此牛人写的是防微信的demo。做的相当好,我在后面附上CSDN免费下载链接。

先贴上java代码——Exit.java

 1 package cn.buaa.myweixin;
 2 
 3 import android.app.Activity;
 4 import android.os.Bundle;
 5 import android.view.MotionEvent;
 6 import android.view.View;
 7 import android.view.View.OnClickListener;
 8 import android.widget.LinearLayout;
 9 import android.widget.Toast;
10 
11 public class Exit extends Activity {
12 
13     private LinearLayout layout;
14     @Override
15     protected void onCreate(Bundle savedInstanceState) {
16         super.onCreate(savedInstanceState);
17         setContentView(R.layout.exit_dialog);
18         layout=(LinearLayout)findViewById(R.id.exit_layout);
19         layout.setOnClickListener(new OnClickListener() {
20             
21             @Override
22             public void onClick(View v) {
23                 // TODO Auto-generated method stub
24                 Toast.makeText(getApplicationContext(), "提示:点击窗口外部关闭窗口!", 
25                         Toast.LENGTH_SHORT).show();    
26             }
27         });
28     }
29 
30     @Override
31     public boolean onTouchEvent(MotionEvent event){
32         finish();
33         return true;
34     }
35     
36     public void exitbutton1(View v) {  
37         this.finish();        
38       }  
39     public void exitbutton0(View v) {  
40         this.finish();
41         MainWeixin.instance.finish();//关闭Main 这个Activity
42       }  
43 }

附上布局文件:exit_dialog.xml

View Code

 

分析,弹出exit这个框很简单,本身就是activity,在主界面用startavtivity等方法像普通activity启动。
关键是如何做到点击其他地方退出和如何关闭程序。

1、点击其他地方退出,只要监听OnClickListener让所有的点击都退出就行了(除了xml中指定按钮事件之外)。

2、退出主程序。只要在出程序中将主程序自己设置成静态对象,在外部调用即可 public static MainWeixin instance=null;

上面的布局和activity并不能将activity的窗体展现在主界面之上,看起来像个弹出框。下面是弹出框的styles配置:

 1     <style name="MyDialogStyle">
 2         <item name="android:windowBackground">@android:color/transparent</item>
 3         <item name="android:windowFrame">@null</item>
 4         <item name="android:windowNoTitle">true</item>
 5         <item name="android:windowIsFloating">true</item>
 6         <item name="android:windowIsTranslucent">true</item>
 7         <item name="android:windowContentOverlay">@null</item>
 8         <item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item>
 9         <item name="android:backgroundDimEnabled">true</item>
10     </style>

下面我们来分析一下这个布局的含义及重点:

重点1、<item name="android:windowBackground">@android:color/transparent</item>窗口背景色

重点2、<item name="android:windowFrame">@null</item>Dialog的windowFrame框为无

重点4、<item name="android:windowIsFloating">true</item>是否浮现在activity之上

重点5、<item name="android:windowIsTranslucent">true</item>窗口是否半透明——是(与第一条配合使用)

重点6、<item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item>窗口弹出效果

重点7、<item name="android:backgroundDimEnabled">true</item> 是否允许背景模糊

重点8、<item name="android:windowContentOverlay">@null</item>这个不设置的话,可能会出现边框黑线

最后在自己的AndroidManifest.xml里记得加(一定要):

    <activity
            android:name="Exit"
            android:theme="@style/MyDialogStyle" >

给更多需要的朋友。

http://download.csdn.net/detail/win_xiang/4788158

我在众多牛人的指引下一步步成长,感谢牛人们,感谢分享者!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值