Android中的几种小窗口实现

在Android经常会碰到各种各样的小窗口,如退出弹窗、菜单弹窗、通知弹窗等等。本文就介绍几种实现小窗口的实例,以后根据情景具体选择实现方法。

惯例,先例出大纲:

  1. Activity式伪弹窗
  2. Dialog式弹窗
  3. Window式弹窗

开始正文~~
1。Activity式伪弹窗

该种情况,其实就是一个Activity,我们只是通过style的作用,把内容部分显示,其他部分都透明化了。
首先,在创建一个Activity和它的布局,这方面不讲了,就一般创建活动流程;
然后,在res/values/styles.xml中添加Activity的具体style,代码及注释如下:

    <style name="MyActivityStyle">
        <item name="android:windowBackground">@android:color/transparent</item> <!--设置dialog的背景-->
        <item name="android:windowFrame">@null</item> <!--Dialog的windowFrame框为无-->
        <item name="android:windowNoTitle">true</item> <!--是否有title-->
        <item name="android:windowIsFloating">true</item> <!--是否浮现在activity之上-->
        <item name="android:windowIsTranslucent">true</item> <!--是否半透明-->
        <item name="android:windowContentOverlay">@null</item> <!--对话框是否有遮盖,这个不设置的话,可能会出现边框黑线-->
        <item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item> <!--动画-->
        <item name="android:backgroundDimEnabled">true</item> <!-- 背景是否模糊显示-->
    </style>

然后,在AndroidManifest.xml中设置Activity的style:

        <activity
            android:name="com.wuxianxi.hunman.smallwindows.MyActivity"
            android:theme="@style/MyActivityStyle" >
        </activity>

最后,还要在Activity中实现点击事件,如点击空白区退出Activity,很简单:

    @Override
    public boolean onTouchEvent(MotionEvent event) {
        //点击外围,退出窗口
        this.finish();
        return true;
    }

到此,Activity式伪弹窗已经完成,是不是很简单~~

2。Dialog式弹窗

这里MyDialog的style,使用与上面Activity窗口一样的style, 这部分在此就不多讲了, 下面主要讲MyDialog的自定义过程。
首先,MyDialog的sytle与上面一样,不重复粘贴了。
然后,自定义MyDialog的布局文件xml, 如下:

<?xml version="1.0" encoding="UTF-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="280dp"
    android:layout_height="wrap_content"
    android:gravity="center_horizontal"
    android:background="@drawable/btn_style_two_normal"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/dialog_title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="4dp"
        android:padding="5dp"
        android:textColor="#333"
        android:textSize="20sp" />

    <TextView
        android:id="@+id/dialog_detail"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        
  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值