zoukankan      html  css  js  c++  java
  • PopupWindow设置动画效果

    创建popupwindow的方法

    Button menu;
    private void showPopupWindow() {  
            //设置contentView
    	float density = DensityUtil.Obtain(activity).density;
            View contentView = LayoutInflater.from(ActivityHomeImpl.this).inflate(R.layout.activity_home_menu, null);
            contentView.setBackgroundColor(0xff003333);
            mPopWindow = new PopupWindow(contentView, -2, DensityUtil.round(50* density), true);//DensityUtil.round(50* density)
            mPopWindow.setContentView(contentView);
            //设置各个控件的点击响应  
            ((Button)contentView.findViewById(R.id.btn1)).setOnClickListener(this);
            ((Button)contentView.findViewById(R.id.btn2)).setOnClickListener(this);
            ((Button)contentView.findViewById(R.id.btn3)).setOnClickListener(this);
            ((Button)contentView.findViewById(R.id.btn4)).setOnClickListener(this);
            ((Button)contentView.findViewById(R.id.btn5)).setOnClickListener(this);
            ((Button)contentView.findViewById(R.id.btn6)).setOnClickListener(this);
            mPopWindow.setTouchable(true);
            mPopWindow.setOutsideTouchable(true);
            // 实例化一个ColorDrawable颜色为半透明
     	//ColorDrawable dw = new ColorDrawable(0xd0000000);
     	//mPopWindow.setBackgroundDrawable(dw);
     	// 设置背景颜色变暗  
            WindowManager.LayoutParams lp = getWindow().getAttributes();
            lp.alpha = 0.7f;
            getWindow().setAttributes(lp);
            mPopWindow.setOnDismissListener(new OnDismissListener() {
    
                @Override
                public void onDismiss() {
                    WindowManager.LayoutParams lp = getWindow().getAttributes();
                    lp.alpha = 1f;
                    getWindow().setAttributes(lp);
                    mPopWindow.dismiss();
                }
            });
     	// 设置popWindow的显示和消失动画
            mPopWindow.setAnimationStyle(R.style.contextMenuAnim);
            mPopWindow.showAsDropDown(menu);
    }
    

    popupwindow 动画

    <style name="contextMenuAnim" parent="@android:style/Animation.Activity">
            <item name="android:windowEnterAnimation">@anim/context_menu_enter</item>
            <!-- 指定显示时的动画xml -->
            <item name="android:windowExitAnimation">@anim/context_menu_exit</item>
            <!-- 指定消失时的动画xml -->
    </style>
    

    activity的Theme设置

    <style name="RedAppLaucherTheme" parent="AppTheme">
            
    </style>

    context_menu_enter.xml

    <?xml version="1.0" encoding="utf-8"?>
    <set xmlns:android="http://schemas.android.com/apk/res/android" >
    
        <translate
            android:duration="200"
            android:fromXDelta="-100%"
            android:fromYDelta="0"
            android:interpolator="@android:anim/anticipate_overshoot_interpolator"
            android:toXDelta="0"
            android:toYDelta="0" />
    
    </set>
    

    context_menu_exit.xml

    <?xml version="1.0" encoding="utf-8"?>
    <set xmlns:android="http://schemas.android.com/apk/res/android" >
    
        <translate
            android:duration="200"
            android:fromXDelta="0"
            android:fromYDelta="0"
            android:interpolator="@android:anim/overshoot_interpolator"
            android:toXDelta="-100%"
            android:toYDelta="0" />
    
    </set>
    

    布局文件activity_home_menu.xml

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >
    
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="50dp"
            android:orientation="horizontal" >
    
            <Button
                android:id="@+id/btn1"
                android:layout_width="40dp"
                android:layout_height="40dp"
                android:layout_gravity="center_vertical"
                android:layout_marginLeft="5dp"
                android:background="@drawable/item_connection" />
    
            <Button
                android:id="@+id/btn2"
                android:layout_width="40dp"
                android:layout_height="40dp"
                android:layout_gravity="center_vertical"
                android:layout_marginLeft="5dp"
                android:background="@drawable/item_disk" />
    
            <Button
                android:id="@+id/btn3"
                android:layout_width="40dp"
                android:layout_height="40dp"
                android:layout_gravity="center_vertical"
                android:layout_marginLeft="5dp"
                android:background="@drawable/item_upgrade" />
    
            <Button
                android:id="@+id/btn4"
                android:layout_width="40dp"
                android:layout_height="40dp"
                android:layout_gravity="center_vertical"
                android:layout_marginLeft="5dp"
                android:background="@drawable/item_status" />
    
            <Button
                android:id="@+id/btn5"
                android:layout_width="40dp"
                android:layout_height="40dp"
                android:layout_gravity="center_vertical"
                android:layout_marginLeft="5dp"
                android:background="@drawable/item_about" />
    
            <Button
                android:id="@+id/btn6"
                android:layout_width="40dp"
                android:layout_height="40dp"
                android:layout_gravity="center_vertical"
                android:layout_marginLeft="5dp"
                android:background="@drawable/item_setting" />
        </LinearLayout>
    
    </RelativeLayout>
    

      

  • 相关阅读:
    一些网购体会
    图灵社区 : 阅读 : [讨论] Java语言被很多人抱怨语法繁琐、开发效率低、体系繁杂而笨重,为什么还有这么强的生命力,尤其是在企业软件领域?
    反爬虫策略浅析
    redis源码笔记 刘浩de技术博客 博客园
    欢迎阅读 Erlang OTP 设计原理文档!¶
    图灵社区 : 阅读 : 十年码农聚会报道——让高龄老码农social起来
    学了一年的c++,连个像样的程序都写不出来 C/C++ / C++ 语言
    2012年第一批中关村高端领军人才公示公告
    为什么Markdown+R有较大概率成为科技写作主流? ← 阳志平的个人网站::技术
    大道至易——"刺秦与灭秦"个人、团队的前途与未来
  • 原文地址:https://www.cnblogs.com/swalka/p/6693561.html
Copyright © 2011-2022 走看看