Android:PopupWindow简单弹窗改进版

Android:PopupWindow简单弹窗

继续上一节的内容,改进一下,目标是点击菜单后把菜单收缩回去并且切换内容,我使用的是PopupWindow+RadioGroup

public class MainActivity extends TabActivity {
    private PopupWindow pop;
    private TabHost tabhost;
    private RadioGroup radiogroup;
    private RadioButton tab1,tab2;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.test);

        //将layout的xml布局文件实例化为View类对象
        LayoutInflater inflater =LayoutInflater.from(this);
        View view =inflater.inflate(R.layout.mypop, null);

        //创建PopupWindow,参数为显示对象,宽,高
        pop =new PopupWindow(view, LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);

        //PopupWindow的设置
        pop.setBackgroundDrawable(new BitmapDrawable());
        //点击外边消失
        pop.setOutsideTouchable(true);
        //设置此参数获得焦点,否则无法点击
        pop.setFocusable(true);

        //设置文本监听事件
        TextView text =(TextView) findViewById(R.id.topmenu);
        text.setOnClickListener(new OnClickListener(){

            @Override
            //判断是否已经显示,点击时如显示则隐藏,隐藏则显示
            public void onClick(View v) {
                if(pop.isShowing()){
                    pop.dismiss();
                }else{
                    pop.showAsDropDown(v);
                }

            }

        });

       //tabhost
        tabhost=getTabHost();
        tabhost.addTab(tabhost.newTabSpec("a").setContent(R.id.tab1).setIndicator("a"));
        tabhost.addTab(tabhost.newTabSpec("b").setContent(R.id.tab2).setIndicator("b"));

      //选项
        radiogroup = (RadioGroup) view.findViewById(R.id.radiogroup);
       //设置radiobutton监听事件
       radioCheckListener l =new radioCheckListener();
       radiogroup.setOnCheckedChangeListener(l);
    }

    //点击菜单,切换卡并让菜单消失
    public class radioCheckListener implements OnCheckedChangeListener{

        @Override
        public void onCheckedChanged(RadioGroup group, int checkedId) {
            // TODO Auto-generated method stub
            switch(checkedId){
            case R.id.tabps:
                tabhost.setCurrentTab(0);
                pop.dismiss();
                break;
            case R.id.tabhtml:
                tabhost.setCurrentTab(1);
                pop.dismiss();
                break;
            }                    

        }

    }

}

菜单布局:

<?xml version="1.0" encoding="utf-8"?>
    <RadioGroup xmlns:android="http://schemas.android.com/apk/res/android"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:orientation="vertical"
         android:background="#393C39"
         android:padding="10dp"
         android:id="@+id/radiogroup"
         >

         <RadioButton
             android:id="@+id/tabps"
             android:layout_width="match_parent"
             android:layout_height="match_parent"
             android:text="Photoshop"
               android:textColor="#ffffff"
               android:checked="true"
             />

          <RadioButton
              android:id="@+id/tabhtml"
             android:layout_width="match_parent"
             android:layout_height="match_parent"
             android:textColor="#ffffff"
             android:text="HTML"
             />

     </RadioGroup>

主布局:

<?xml version="1.0" encoding="utf-8"?>
<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@android:id/tabhost"
     >
<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    >
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@drawable/titlebg"
        android:gravity="center"
        android:orientation="vertical" >

        <TextView
            android:id="@+id/topmenu"
            android:layout_width="wrap_content"
            android:layout_height="46dp"
            android:clickable="true"
            android:drawableRight="@drawable/ic_menu_trangle_down"
            android:gravity="center_vertical"
            android:text="全部课程"
            android:textColor="#ffffff" />
    </LinearLayout>

    <TabWidget
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@android:id/tabs"
        android:visibility="gone"
        >
    </TabWidget>

    <FrameLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@android:id/tabcontent"
        >
        <LinearLayout
            android:id="@+id/tab1"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical"
            android:background="#ff0000"
            ></LinearLayout>
         <LinearLayout
            android:id="@+id/tab2"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical"
            android:background="#000000"
            ></LinearLayout>
    </FrameLayout>
</LinearLayout>

</TabHost>

实例下载>>>>>>>>>>>>>>>>>>>>>

相关文章:

Android实现下拉导航选择菜单效果

时间: 2024-10-22 10:08:13

Android:PopupWindow简单弹窗改进版的相关文章

Android PopupWindow 仿微信弹出效果

项目中,我需要PopupWindow的时候特别多,这个东西也特别的好使,所以我今天给大家写一款PopupWindow 仿微信弹出效果,这样大家直接拿到项目里就可以用了!首先让我们先看效果: 那么我首先先看下布局代码非常简单:如下 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/pop_layout" android:layout_

PopupWindow选项弹窗

PopupWindow选项弹窗 一.popupwindow弹窗简介 popupwindow是一种弹窗在应用中经常使用,像超级课程表的周数选择,微博的标题栏的titlebar中的选择等等 ,如图所示. 但是和alertDialog很相似,但是还是有很大的区别的.AlterDialog是非阻塞式对话框:AlaterDialog弹出时,后台还可以做事情:而且PopuWindow是阻塞式对话框:PopupWindow弹出时,后台程序会等待,在PopupWindow退出之前一直处于等待,直到当我们调用了d

Android发展简单介绍

Android一词的本义指“机器人”,同一时候也是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统.中间件.用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的移动软件.眼下最好的是Android2.0的摩托罗拉Droid Android公司介绍 国家:美国 业务:手机软件,操作系统 成立于:2003年 创办人:Andy Rubin,Andy McFadden.Richard Miner Chris White 中文名:安卓 眼下

PopupWindow简单使用

PopupWindow简单使用 PopupWindow展示在屏幕的不同位置,比较简单 ! 下载地址:http://www.devstore.cn/code/info/771.html 运行截图:   热门源码下载: 高仿京东商城 Android快速开发不可或缺的11个工具类 Android快速开发框架LoonAndroid Android应用源码比较不错的新闻客户端 版权声明:本文为博主原创文章,未经博主允许不得转载.

移动端UI设计越来越流行的高斯模糊(Gaussian blur)和毛玻璃效果(磨砂效果),如何使用Android RenderScript简单实现?

高斯模糊(Gaussian blur)和毛玻璃效果(亦称磨砂效果),近两年在移动端的UI设计上越来越流行,特别是iOS手机上出现的较多,iOS系统也提供了相应的API帮助开发人员分分钟实现这两个效果.而Android系统则经历了一个漫长的探索过程,对图片的处理,从Java算法到NDK方式实现等,各种摸索层出不穷. 值得欣慰的是,Google终于在API 11中引入了 RenderScript ,一个强大的图片处理框架,帮助Android开发人员专注于图片处理算法而不是API的调度工作.使用Ren

SharePanel – Android上简单的一键分享,可分享到微信QQ和新浪微博

SharePanel – Android上简单的一键分享,可分享到微信QQ和新浪微博 SharePanel Android上简单的一键分享可分享到微信QQ和新浪微博 简介 效果图 代码块 简介 最近在写一个小程序长微博工具,效果就是编辑长微博,然后一键分享到微信.QQ和新浪微博. 一开始是想直接用Intent.createChooser(target, title)来做,后来一想,这样做不是很好啊,会有许多乱七八糟的应用弹出来,我想优先分享到微信.QQ和微博,于是找了点资料,将一键分享这个部分做

Android WIFI 简单用法

随着Wifi的普及,在开发App的时候对wifi的考虑越来越多了.例如程序的升级在wifi下可以省很多流量,在通信软件中的视频通话.可以实现高画质的传输等等,Android提供了WifiManager类来帮助开发者们管理Wifi.下面就简单来说一下WifiManager的简单用法把. 权限: 为了使用WfiManager 我们需要在Androidmanifest.xml 加入权限: //本例中使用了前两个.具体请按照需要添加权限. <uses-permission android:name=&quo

Android popupwindow以及windowManager总结——实现悬浮效果

Android有三类窗口 应用程序窗口 (Application Window): 包括所有应用程序自己创建的窗口,以及在应用起来之前系统负责显示的窗口. 子窗口(Sub Window):比如应用自定义的对话框,或者输入法窗口,子窗口必须依附于某个应用窗口(设置相同的token). 系 统窗口(System Window): 系统设计的,不依附于任何应用的窗口,比如说,状态栏(Status Bar), 导航栏(Navigation Bar), 壁纸(Wallpaper), 来电显示窗口(Phon

【Android】android PopupWindow实现从底部弹出或滑出选择菜单或窗口

转载自:android PopupWindow实现从底部弹出或滑出选择菜单或窗口 Android PopupWindow的使用和分析 Popupwindow的使用 PopupWindow用法