点击ListView一个Item弹出窗体,窗体展示时添加动画效果切入

    private class MyAppInfoItemClickListener implements OnItemClickListener{
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position,long id) {
            // 在弹出之前先销毁已经弹出的窗体
            destoryPopupWindow();

            //保留当前的Item的位置坐标
            currentIndex = position;

            //弹出
            popupWindows(parent,view);
        }
    }
    /**
     * 弹出窗体的方法
     * @param parent
     * @param view
     */
    private void popupWindows(AdapterView<?> parent, View view) {

        // 展示的View填充
        View contentView = View.inflate(SoftwareManageActivity.this, R.layout.list_item_prop_view, null);

        // 获取 展示窗体中的子元素
        getPopupWindowElements(contentView);

        // -2 代表wrap_content
        pwin = new PopupWindow(contentView,-2,-2);

        // 弹出窗体在设置动画时要想产生效果必须设置背景
        pwin.setBackgroundDrawable(new ColorDrawable(Color.GRAY));

        // Item的位置
        int[] location = new int[2];

        view.getLocationInWindow(location);

        // Gravity.LEFT | Gravity.TOP   是 与 或的 操作
        pwin.showAtLocation(parent, Gravity.LEFT | Gravity.TOP, DensityUtil.dip2px(this, 60), location[1]);

        // 给 展示的 View设置动画
        contentView.setAnimation(animationFactory());
    }
    /**
     * 找到弹出窗体里面的子元素并添加监听事件
     * @param contentView
     */
    private void getPopupWindowElements(View contentView) {
        LinearLayout llStart = (LinearLayout) contentView.findViewById(R.id.ll_start_item);
        llStart.setOnClickListener(this);

        LinearLayout llShare = (LinearLayout) contentView.findViewById(R.id.ll_share_item);
        llShare.setOnClickListener(this);

        LinearLayout llRemove = (LinearLayout) contentView.findViewById(R.id.ll_remove_item);
        llRemove.setOnClickListener(this);
    }
    /**
     * 动画工厂
     * @return
     */
    private AnimationSet animationFactory() {
        ScaleAnimation sa = new ScaleAnimation(0.3f, 1.0f, 0.3f, 1.0f, Animation.RELATIVE_TO_SELF, 0,Animation.RELATIVE_TO_SELF, 0.5f);

        sa.setDuration(300);

        AlphaAnimation aa = new AlphaAnimation(0.5f, 1.0f);

        aa.setDuration(300);

        AnimationSet animationSet = new AnimationSet(false);

        animationSet.addAnimation(sa);

        animationSet.addAnimation(aa);

        return animationSet;
    }
时间: 2024-10-10 22:08:11

点击ListView一个Item弹出窗体,窗体展示时添加动画效果切入的相关文章

点击一个超链接,弹出固定大小的新窗口(js实现)

点击一个超链接,弹出固定大小的新窗口(js实现),有需要的朋友可以参考下. 1.最基本的弹出窗口代码 <SCRIPT LANGUAGE="javascript"> <!-- window.open ('page.html') --> </SCRIPT> 因为这是一段javascripts代码,所以它们应该放在<SCRIPTLANGUAGE="javascript">标签和</script>之间.<!-

点击事件中实现弹出一个选择框(如选择网络设置、选择电话短信联系方式)

1.网络设置 public void checkNetwork(){ //获取连接的管理对象 ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); //获取当前正在使用的网络 NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo(); //判断网络是

xtraTabbedMdiManager的标题上右鍵弹出关闭窗体菜单

实现一个增值功能, 在xtraTabbedMdiManager组件TabPage标题上右鍵弹出关闭当前窗体的菜单. C# Code:private void xtraTabbedMdiManager1_MouseUp(object sender, MouseEventArgs e){   //点左键无效, 必须是点右键弹出菜单   if (e.Button != MouseButtons.Right) return;      BaseTabHitInfo hint = xtraTabbedMd

winform弹出唯一窗体的方法

Form1中btn1按钮点击show出Form2,当Form2处于开启状态时,再次点击btn1不会继续弹出窗体,而是将焦点定位至已开启的Form2上:当Form2关闭后,再次点击btn1则会show出一个新的Form2: Form1: //创建一个全局集合,用来放置已经show出的窗体对象 List<Form> list = new List<Form>(); //btn1点击事件: private void button1_Click(object sender, EventAr

IPhone手机页面中点击文本输入框,弹出键盘,网页会放大,如何解决

在head标签中加入以上meta声明.具体属性可以谷歌/百度. <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" /> 我查了下viewport,有几个属性:width - viewport的宽度 height - viewport的高度initial-scale - 初始的缩放比例minim

C# GridView Edit &amp; Delete, 点击Delete的时候弹出确认框

1. 使用GridView自带属性ShowEditButton和ShowDeleteButton,均设为True  <Columns> ... <asp:CommandField ShowEditButton="True" ShowDeleteButton="True"></asp:CommandField> </Columns> 则在GridView指定列的位置会显示Edit和Delete的LinkButton 2.

制作一个页面弹出窗口

在网站开发过程中经常会遇到这样的需求:要求点击某个按钮的时候可以在原来页面的基础上弹出一个对话框窗口,该窗口可以添加文本输入框.按钮等控件,然后可以接受用户的输入.经过本人一番研究,总结代码如下: html文件中: <span id="upgrade" onclick="upgrade()">级别升级</span> <div class="form"> <h3>级别升级</h3> <

WPF 在MVVM模式下弹出子窗体的方式

主要是通过一个WindowManager管理类,在window后台代码中通过WindowManager注册需要弹出的窗体类型,在ViewModel通过WindowManager的Show方法,显示出来. WindowManager代码如下: public static class WindowManager { private static Hashtable _RegisterWindow = new Hashtable(); public static void Regiter<T>(st

[King.yue]Ext.net 弹出Windows窗体注意的事项

页面的控件ID不能重复,否则会覆盖原控件. [King.yue]Ext.net 弹出Windows窗体注意的事项,布布扣,bubuko.com