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>
    

      

  • 相关阅读:
    Smarty中的请求变量和保留变量的使用范例
    mysql通过sql语句判断某个字段在一张表中是否存在
    dede用户登录时,跳转到提示页时报404错误
    eclipse自动补全的设置
    Eclipse使用技巧
    JS中比较的数值如何比较大小
    在文本框中提示用户输入内容格式的方法
    使用命令行创建Android工程报错:"Target id is not valid. Use 'android.bat list targets' to get the target ids"
    eclipse下 Failed to find an AVD compatible with target 的解决方法
    如何更改Android的默认虚拟机地址(Android virtual driver路径设置)
  • 原文地址:https://www.cnblogs.com/swalka/p/6693561.html
Copyright © 2011-2022 走看看