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>
    

      

  • 相关阅读:
    关于10053 trace中的UNCOMPBKTS和ENDPTVALS
    12c新特性
    ORA600:[ksnpost:ksnigb]错误一例
    RAC CRS Resource资源的生命周期
    Windows上如何禁用TCP/IP自动调优特性
    11g新特性
    Exadata V2 OracleSun Database Machine数据库一体机
    Script:verify Oracle Object timestamp discrepancy
    Grid Control OMS Agent代理工作原理图
    Android 编程下报错 Exception raised during rendering: java.util.LinkedHashMap.eldest()Ljava/util/Map$Entry;
  • 原文地址:https://www.cnblogs.com/swalka/p/6693561.html
Copyright © 2011-2022 走看看