zoukankan      html  css  js  c++  java
  • Android高手进阶教程(十)之----Android PopupWindow的使用!!!

    大家好,我们这一节讲的是Android PopupWindow的使用! 在我理解其实PopupWindow其实类似于一个不能动的Widget(仅从显示效果来说!)

    它是浮在别的窗口之上的.

    下面我将给大家做一个简单的Demo,类似于音乐播放器的Widget的效果,点击Button的时候出来PopupWindow,首先我们看一下效果图:

    package com.android.tutor;  
    import android.app.Activity;  
    import android.content.Context;  
    import android.os.Bundle;  
    import android.view.Gravity;  
    import android.view.LayoutInflater;  
    import android.view.View;  
    import android.view.View.OnClickListener;  
    import android.view.ViewGroup.LayoutParams;  
    import android.widget.Button;  
    import android.widget.PopupWindow;  
    public class PopupWindowDemo extends Activity  implements OnClickListener{  
        private Button btn;  
          
        public void onCreate(Bundle savedInstanceState) {  
            super.onCreate(savedInstanceState);  
            setContentView(R.layout.main);  
              
            btn = (Button)findViewById(R.id.btn);  
            btn.setOnClickListener(this);  
        }  
        @Override  
        public void onClick(View v) {  
            Context mContext = PopupWindowDemo.this;  
            if (v.getId() == R.id.btn) {  
                LayoutInflater mLayoutInflater = (LayoutInflater) mContext  
                        .getSystemService(LAYOUT_INFLATER_SERVICE);  
                View music_popunwindwow = mLayoutInflater.inflate(  
                        R.layout.music_popwindow, null);  
                PopupWindow mPopupWindow = new PopupWindow(music_popunwindwow, LayoutParams.FILL_PARENT,  
                        LayoutParams.WRAP_CONTENT);  
                  
                mPopupWindow.showAtLocation(findViewById(R.id.main), Gravity.RIGHT|Gravity.BOTTOM, 0, 0);  
            }  
        }  
    }

    需要强调的是这里PopupWindow必须有某个事件触发才会显示出来,不然总会抱错,不信大家可以试试!

    随着这个问题的出现,就会同学问了,那么我想初始化让PopupWindow显示出来,那怎么办了,不去寄托于其他点击事件,

    在这里我用了定时器Timer来实现这样的效果,当然这里就要用到Handler了,如果大家不理解的可以返回

    package com.android.tutor;  
    import java.util.Timer;  
    import java.util.TimerTask;  
    import android.app.Activity;  
    import android.content.Context;  
    import android.os.Bundle;  
    import android.os.Handler;  
    import android.os.Message;  
    import android.view.Gravity;  
    import android.view.LayoutInflater;  
    import android.view.View;  
    import android.view.ViewGroup.LayoutParams;  
    import android.widget.PopupWindow;  
    public class PopupWindowDemo extends Activity{  
        private Handler mHandler = new Handler(){  
              
            public void handleMessage(Message msg) {  
                switch (msg.what) {  
                case 1:  
                    showPopupWindow();  
                    break;  
                }  
            };  
        };  
          
        public void onCreate(Bundle savedInstanceState) {  
            super.onCreate(savedInstanceState);  
            setContentView(R.layout.main);  
              
            //create the timer   
            Timer timer = new Timer();  
            timer.schedule(new initPopupWindow(), 100);  
        }  
          
        private class initPopupWindow extends TimerTask{  
            @Override  
            public void run() {  
                  
                Message message = new Message();  
                message.what = 1;  
                mHandler.sendMessage(message);  
                  
            }         
        }  
          
          
        public void showPopupWindow() {  
            Context mContext = PopupWindowDemo.this;  
            LayoutInflater mLayoutInflater = (LayoutInflater) mContext  
                    .getSystemService(LAYOUT_INFLATER_SERVICE);  
            View music_popunwindwow = mLayoutInflater.inflate(  
                    R.layout.music_popwindow, null);  
            PopupWindow mPopupWindow = new PopupWindow(music_popunwindwow,  
                    LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT);  
            mPopupWindow.showAtLocation(findViewById(R.id.main), Gravity.CENTER, 0, 0);  
        }  
    }

    岁月本长而忙者自促;天地本宽而卑者自隘;风花雪月本闲,而劳忧者自冗;天行健,君子以自强不息;地势坤,君子以厚德载物;宠辱不惊,闲看庭前花开花落;去留无意,漫随天外云卷云舒.不妄取,不妄予,不妄想,不妄求,与人方便,随遇而安
  • 相关阅读:
    oracle函数 exp(y)
    oracle函数 power(x,y)
    oracle函数 floor(x)
    oracle函数 ceil(x)
    oracle函数 ABS(x)
    简明Python3教程(A Byte of Python 3)
    C#实现窗口最小化到系统托盘
    简明Python3教程 4.安装
    ubuntu
    Javascript 笔记与总结(2-6)var
  • 原文地址:https://www.cnblogs.com/vvning/p/9429386.html
Copyright © 2011-2022 走看看