`
喧嚣求静
  • 浏览: 573453 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

仿支付宝广告-顶部往下掉的popwindow,消失在左上角

 
阅读更多

最近玩支付宝,有时候打开时,会从顶部掉下一个营销的广告窗口,效果图如下



 分析:

1.从顶部往下掉,一个位移动画

背景半透明

首页构建广告界面

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout  xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#78666666">
    <FrameLayout android:layout_gravity="center"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

     <LinearLayout android:id="@+id/adArea"
         android:orientation="vertical"
         android:layout_gravity="center"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content">
         <ImageView android:id="@+id/closeIcon"
             android:src="@drawable/close"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content" />
         <ImageView android:id="@+id/adContent"
             android:src="@drawable/adcontent"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content" />

     </LinearLayout>

    </FrameLayout>
</FrameLayout>

 用到的动画,顶部掉下来fade_in.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate
        android:duration="1000"
        android:fromYDelta="-100%"
        android:toYDelta="0" />
    <alpha android:startOffset="500"
        android:fromAlpha="0"
        android:toAlpha="1"
        android:duration="1000"/>

</set>

 退出时动画fade_out.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:fillAfter="true" android:fillBefore="false">

    <translate
        android:duration="2000"
        android:fromYDelta="0"
        android:toYDelta="-100%" />
    <scale android:startOffset="800"
        android:pivotX="0%"
        android:pivotY="0%"
        android:fromXScale="1"
        android:toXScale="0"
        android:fromYScale="1"
        android:duration="1000"
        android:toYScale="0">
    </scale>
</set>

 启动Activity

package com.example.exportgradledemo;

import android.app.Activity;
import android.content.Context;
import android.graphics.drawable.BitmapDrawable;
import android.os.Bundle;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup.LayoutParams;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.PopupWindow;


public class Main3Activity extends Activity {

    private android.widget.Button button;
    private PopupWindow popupWindow;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main3);
        this.button = (Button) findViewById(R.id.button);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                showPopupWindow();
            }
        });
    }

    /**
     * 微信分享弹框
     */
    private void showPopupWindow() {

        if (popupWindow == null) {
            LayoutInflater layoutInflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            View view = layoutInflater.inflate(R.layout.popad_layout, null);

            popupWindow = new PopupWindow(view, LayoutParams.MATCH_PARENT,LayoutParams.MATCH_PARENT);
        }

        popupWindow.setFocusable(true);
        popupWindow.setOutsideTouchable(true);
        popupWindow.setAnimationStyle(R.style.AnimationPreview);
        // 这个是为了点击“返回Back”也能使其消失,并且并不会影响你的背景
        popupWindow.setBackgroundDrawable(new BitmapDrawable());
        WindowManager windowManager = (WindowManager) getSystemService(Context.WINDOW_SERVICE);

        popupWindow.showAtLocation(findViewById(R.id.screen_content_layout), Gravity.BOTTOM, 0, 0);

    }

}

 

  • 大小: 113.5 KB
  • 大小: 96 KB
  • 大小: 3.7 KB
分享到:
评论

相关推荐

    自定义ProgressBar---跟随进度的 Popwindow

    在很多场景下,我们可能希望这个进度条不仅仅局限于一个固定的位置,而是能够根据进度动态地显示在屏幕上的特定位置,比如作为提示用户操作正在进行的Popwindow。本文将深入探讨如何自定义一个跟随进度的Popwindow。...

    安卓popupwindow相关-Android--PopWindow的使用.rar

    在Android开发中,PopupWindow是一个非常实用的组件,它能够创建一种浮现在当前Activity之上的窗口,用于显示临时的信息或者提供交互操作。本资源“安卓popupwindow相关-Android--PopWindow的使用.rar”包含了关于...

    简单仿支付宝Popwindo弹出框控件

    在这个案例中,我们关注的是一个名为"简单仿支付宝Popwindo弹出框控件"的项目。这个控件是为模拟支付宝的密码支付弹出窗口而设计的,它提供了与支付宝官方应用相似的交互体验,同时保持了代码的简洁性和可读性。 ...

    popwindow简单实现顶部筛选

    在Android开发中,`PopupWindow`是一个非常实用的组件,常用于实现各种临时弹出窗口,比如顶部筛选、下拉菜单、悬浮按钮等。本文将详细介绍如何使用`PopupWindow`来简单实现一个顶部筛选功能,并探讨相关的设计和...

    仿微信加号popwindow实现

    仿微信加号popwindow和qqpopwindow下拉实现

    Android popwindow和fragment结合 左侧弹出下拉菜单 切换界面

    - 适当地处理`PopWindow`的消失,避免内存泄漏,例如在`onPause()`或`onDestroy()`中取消监听和释放资源。 - 如果`Fragment`需要保存状态,可以重写`onSaveInstanceState()`和`onActivityCreated()`方法。 综上所...

    android下拉列表样式筛选组件,仿美团popwindow实现

    本文将详细介绍如何在Android中实现一个仿美团PopWindow的下拉筛选组件,以及如何通过点击Tab属性来显示筛选条件。 首先,我们来理解`PopWindow`。`PopWindow`是Android中的一个非常实用的组件,它可以在屏幕上的...

    安卓下拉列表样式筛选组件(仿美团,popwindow实现方式)

    本篇将详细介绍如何在Android中实现一个仿美团的下拉查询列表组件,主要涉及`DropDownMenu`的实现方式,以及如何通过`popwindow`来构建这一功能。 首先,`DropDownMenu`是一个可折叠的菜单,通常隐藏在屏幕顶部或者...

    popwindow中加载Editext动态评论仿今日头条

    在Android应用开发中,"PopWindow中加载EditText动态评论仿今日头条"是一个常见的需求,它涉及到UI设计、事件处理以及自定义视图等多个方面。今日头条作为一款新闻资讯类应用,其评论功能是用户互动的重要环节,而...

    点击listview的item在所点击的item的上边弹出popwindow

    在res/layout目录下,新建一个XML文件来定义PopWindow的内容,比如`popup_window.xml`: ```xml xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:...

    popwindow+listview

    在Android开发中,`PopWindow`和`ListView`是两个常用组件,它们分别用于实现弹出窗口和列表显示。在本项目中,"popwindow+listview"的封装结合了两者的优势,创建了一个可定制化的下拉菜单或者悬浮窗口,其中包含了...

    自定义PopWindow实现,所有view上层显示。希望对大家有帮助。

    内含的补充文档和集成说明将提供更详细的步骤和注意事项,可能包括如何在不同场景下使用PopWindow,如何处理触摸穿透问题,以及如何与其他组件(如Adapter)协同工作。在阅读和实践这些内容时,开发者应特别关注兼容...

    仿微信加号和qq扫一扫的Popwindow菜单栏

    仿微信加号和qq扫一扫的Popwindow菜单栏

    安卓Dialog对话框相关-自定义单选多选对话框及popwindow窗口实例源码.rar

    在Android开发中,Dialog对话框是一种常见的用户交互方式,它用于在主界面之上显示一个临时性的视图,向用户展示信息或请求用户做出选择。在本压缩包中,"安卓Dialog对话框相关-自定义单选多选对话框及popwindow窗口...

    自定义popwindow炫酷UI

    1. **创建布局资源**:在res/layout目录下创建XML文件,设计你想要的PopWindow界面。可以包含各种View组件,如ImageView、TextView、Button等,根据需求定制布局样式。 2. **创建PopWindow对象**:在代码中,通过...

    Android应用源码之PopWindow-IT计算机-毕业设计.zip

    在Android应用开发中,PopWindow是一个非常重要的组件,它用于创建弹出式窗口,通常用于显示临时信息或者作为用户交互的辅助元素。本项目“Android应用源码之PopWindow”是一个针对毕业设计的学习Demo,旨在帮助学生...

    安卓popupwindow相关-收藏的Popwindow弹出的小demo.rar

    在Android开发中,PopupWindow是一个非常实用的组件,它能够创建一种类似对话框的效果,但比Dialog更加灵活,可以自由地设置位置、大小,并且不会阻塞用户与屏幕其他部分的交互。本压缩包文件“安卓popupwindow相关-...

    自定义屏幕截图+popwindow

    在Android开发中,自定义屏幕截图以及PopWindow的实现是一个常用的功能,这通常涉及到用户交互、图像处理和UI设计等多个方面。以下将详细介绍这两个技术点。 1. 自定义屏幕截图: 自定义屏幕截图通常需要利用...

    android下popwindow的使用

    在Android开发中,PopupWindow是一个非常实用的组件,它能够以弹出窗口的形式展示内容,类似于iOS中的ActionSheet。在各种交互设计中,比如底部菜单、下拉选择、提示信息等,我们都能看到PopupWindow的身影。本文将...

    Android开发Popwindow仿微信右上角下拉菜单实例代码

    在这个实例中,我们将探讨如何创建一个仿微信右上角下拉菜单的`Popwindow`。 首先,我们需要了解`Popwindow`的基本结构和使用方法。`Popwindow`是`android.widget.PopupWindow`类的一个实例,它允许开发者在屏幕上...

Global site tag (gtag.js) - Google Analytics