zoukankan      html  css  js  c++  java
  • 3月26日学习日志

    今天学习了悬浮框的使用。

    主要代码为:

    public class MainActivity extends AppCompatActivity {
    
        private Button btn_show;
        private Context mContext;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            mContext = MainActivity.this;
            btn_show = (Button) findViewById(R.id.btn_show);
            btn_show.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    initPopWindow(v);
                }
            });
        }
    
    
        private void initPopWindow(View v) {
            View view = LayoutInflater.from(mContext).inflate(R.layout.item_popup, null, false);
            Button btn_xixi = (Button) view.findViewById(R.id.btn_xixi);
            Button btn_hehe = (Button) view.findViewById(R.id.btn_hehe);
            //1.构造一个PopupWindow,参数依次是加载的View,宽高
            final PopupWindow popWindow = new PopupWindow(view,
                    ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT, true);
    
            popWindow.setAnimationStyle(R.anim.anim_pop);  //设置加载动画
    
            //这些为了点击非PopupWindow区域,PopupWindow会消失的,如果没有下面的
            //代码的话,你会发现,当你把PopupWindow显示出来了,无论你按多少次后退键
            //PopupWindow并不会关闭,而且退不出程序,加上下述代码可以解决这个问题
            popWindow.setTouchable(true);
            popWindow.setTouchInterceptor(new View.OnTouchListener() {
                @Override
                public boolean onTouch(View v, MotionEvent event) {
                    return false;
                    // 这里如果返回true的话,touch事件将被拦截
                    // 拦截后 PopupWindow的onTouchEvent不被调用,这样点击外部区域无法dismiss
                }
            });
            popWindow.setBackgroundDrawable(new ColorDrawable(0x00000000));    //要为popWindow设置一个背景才有效
    
    
            //设置popupWindow显示的位置,参数依次是参照View,x轴的偏移量,y轴的偏移量
            popWindow.showAsDropDown(v, 50, 0);
    
            //设置popupWindow里的按钮的事件
            btn_xixi.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    Toast.makeText(MainActivity.this, "你点击了嘻嘻~", Toast.LENGTH_SHORT).show();
                }
            });
            btn_hehe.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    Toast.makeText(MainActivity.this, "你点击了呵呵~", Toast.LENGTH_SHORT).show();
                    popWindow.dismiss();
                }
            });
        }
    }
  • 相关阅读:
    第六周例行报告
    第五周每周例行报告
    第三、四周例行报告
    PSP总结报告
    获奖感言
    20181204-1 每周例行报告
    20181127-2 每周例行报告
    软件工程原则的应用实例分析
    20181120-1 每周例行报告
    20181113-2 每周例行报告
  • 原文地址:https://www.cnblogs.com/20193925zxt/p/14883202.html
Copyright © 2011-2022 走看看