`

Android从下往上(动画)滑出窗口

 
阅读更多

CzTestActivity.java:

 

package com.weijie.user.activity;

import android.app.Activity;
import android.os.Bundle;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup.LayoutParams;
import android.widget.PopupWindow;
import android.widget.TextView;

import com.weijie.user.R;

public class CzTestActivity extends Activity {

	private TextView mybut = null; // 定义按钮
	private PopupWindow popWin = null; // 弹出窗口
	private View popView = null; // 保存弹出窗口布局

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		super.setContentView(R.layout.cztest_main); // 调用布局管理器
		this.mybut = (TextView) super.findViewById(R.id.mybut); // 取得按钮
		this.mybut.setOnClickListener(new OnClickListenerImpl()); // 设置事件类
	}
	
	private class OnClickListenerImpl implements OnClickListener {
		@Override
		public void onClick(View view) {
			LayoutInflater inflater = LayoutInflater.from(CzTestActivity.this); // 取得LayoutInflater对象
			CzTestActivity.this.popView = inflater.inflate(
					R.layout.cztest_popwin, null); // 读取布局管理器
			CzTestActivity.this.popWin = new PopupWindow(popView,
					LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT, true); // 实例化PopupWindow
			// 设置PopupWindow的弹出和消失效果

			CzTestActivity.this.popWin
					.setAnimationStyle(R.style.popupAnimation);

			CzTestActivity.this.popWin.showAtLocation(
					CzTestActivity.this.mybut, Gravity.BOTTOM, 0, 0); // 显示弹出窗口
		}
	}
}

 

 

 

 

 

cztest_main.xml:

 

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <Button
        android:id="@+id/mybut"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="测试按钮" />

</LinearLayout>

 

 

 

 

 

cztest_popwin.xml:

 

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" >

    <View
        android:id="@+id/transparent"
        android:layout_width="fill_parent"
        android:layout_height="15dp"
        android:background="#00ffffff" />

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/transparent"
        android:background="#ffffff"
        android:orientation="vertical" >

        <TextView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:padding="5dp"
            android:text="性别修改"
            android:textColor="#000000"
            android:textSize="18sp" />

        <View
            android:layout_width="fill_parent"
            android:layout_height="1px"
            android:background="#000000" />

        <TextView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:padding="5dp"
            android:text="男"
            android:textColor="#000000" />

        <View
            android:layout_width="fill_parent"
            android:layout_height="1px"
            android:background="#000000" />

        <TextView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:padding="5dp"
            android:text="女"
            android:textColor="#000000" />
    </LinearLayout>

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true"
        android:src="@drawable/popwin_close" />

</RelativeLayout>

 

 

 

 

 

 

<style name="popupAnimation" parent="android:Animation">
        <item name="android:windowEnterAnimation">@anim/pop_in</item>
        <item name="android:windowExitAnimation">@anim/pop_out</item>
    </style>

 

pop_in.xml:

 

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate
        android:fromYDelta="80%p"
        android:toYDelta="0"
        android:duration="1500"
    />
</set>

 

 

 

 

 

pop_out.xml:

 

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate
        android:fromYDelta="0"
        android:toYDelta="80%p"
        android:duration="1500"
    />
</set>

 

 注:下面附上从右往左的动画代码:

 

//values/styles.xml
<resources>
    <style name="mystyle" parent="android:Animation">
        <item name="@android:windowEnterAnimation">@anim/dialog_enter</item>
  <!--进入时的动画     -->
        <item name="@android:windowExitAnimation">@anim/dialog_exit</item>
    <!-- 退出时的动画    -->
</style>
</resources>

//anim/dialog_enter.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >
    <!-- %p指相对于父容器 android:fromYDelta="100%p" 
        android:toXDelta="100%p"-->
    <translate
        android:duration="600"
        android:fromXDelta="100%p"
        />
</set>

//anim/dialog_exit.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >
    <!-- //持续时间 -->
    <translate
        android:duration="600"
        android:toXDelta="100%" />
</set>

 

 

 

 

  • 大小: 7.4 KB
分享到:
评论

相关推荐

    android自定义动画,窗口

    在Android开发中,自定义动画和窗口效果是提升用户体验的重要手段。本文将深入探讨如何实现Activity的淡入淡出效果,以及模拟iPhone的左右滑动切换界面的效果,同时讲解如何自定义Activity窗口。 首先,让我们从...

    仿UC删除窗口列表动画android源码

    "仿UC删除窗口列表动画android源码"是一个专门为Android应用设计的示例项目,它模仿了UC浏览器中删除窗口时的动画效果,为用户提供了视觉上的交互反馈。这个项目可以帮助开发者学习如何在ListView中实现类似的功能,...

    android PopupWindow实现从底部弹出或滑出选择菜单或窗口

    在本教程中,我们将深入探讨如何利用`PopupWindow`实现从底部弹出或滑出的选择菜单或窗口,以及如何设置背景为灰色透明。 首先,我们需要理解`PopupWindow`的基本概念。`PopupWindow`是Android SDK中的一个类,它...

    Android炫酷的弹出窗口

    在Android开发中,创建引人注目的用户界面是至关重要的,尤其是一些具有动画效果的弹出窗口,它们能够提供良好的用户体验并增加应用的趣味性。"Android炫酷的弹出窗口"这一主题主要涵盖了如何在Android应用中设计和...

    Android从屏幕底部弹出PopupWindow

    在Android开发中,PopupWindow是一种常用的UI组件,它可以在屏幕上的任意位置显示一个浮动窗口,通常用于实现类似下拉菜单、提示框等效果。在这个场景中,我们要实现的是从屏幕底部弹出的PopupWindow,并带有滑动...

    android弹出框动画效果

    本文将深入探讨如何在Android中实现丰富的弹出框动画效果,以"android弹出框动画效果"为主题,结合"NiftyModalDialogEffects"这个压缩包中的示例,我们将详细解析Android Dialog的动画设计与实现。 首先,了解...

    Android底部滑动弹出窗口源码

    综上所述,这个"Android底部滑动弹出窗口源码"项目涵盖了Android开发中的多个关键点:自定义视图动画、WebView交互、底部导航菜单和顶部滑动菜单的实现。通过研究这个项目,开发者不仅可以学习到如何实现底部滑出...

    Android 带动画的底部弹出视图

    【Android 带动画的底部弹出视图】 在Android应用开发中,用户交互界面的设计是至关重要的。底部弹出视图(Bottom Sheet)是一种常见的交互元素,它可以从底部向上滑动显示更多的内容或者功能选项,常用于展示详情...

    弹出窗口 拍照上传 android

    在Android应用开发中,"弹出窗口 拍照上传"是一个常见的功能,尤其是在社交类应用中,如微信。这个功能允许用户通过点击按钮触发一个底部弹出窗口,该窗口通常包含拍照和从相册选择图片两个选项,方便用户快速分享...

    android 弹出窗口

    在Android开发中,弹出窗口(PopupWindow)是一种常见的用户交互元素,用于在主界面之上显示临时信息或者提供额外的功能选项。它不像是一个独立的Activity,而是依附于现有的视图并能自由控制其显示位置和样式。下面...

    Android自定义PopWindow带动画向下弹出效果

    在Android中,PopupWindow是一个可以在屏幕上弹出的一种窗口,自定义PopWindow类可以实现自定义的弹出窗口效果。在本文中,我们定义了一个名为PopWin的自定义PopWindow类,该类继承自PopupWindow类,并添加了一些...

    Android常见的补间Animation动画集合

    在Android中,可以通过设置Activity的窗口属性来实现切换动画。在AndroidManifest.xml中对Activity进行配置,或者在代码中使用overridePendingTransition()方法。例如,可以使用滑动、淡入淡出等效果。 6. 自定义...

    Android-精仿京东商品详情页效果支持左右滑动上下滑动

    在Android开发中,创建一个高度仿真的京东商品详情页是一个挑战性的任务,涉及到多个技术点和组件的集成。本文将详细解析"Android-精仿京东商品详情页效果支持左右滑动上下滑动"这一项目的核心知识点,帮助开发者...

    Android从下到上弹出透明弹出框

    在Android开发中,创建一个从下到上弹出的透明弹出框是一项常见的需求,它通常用于显示一些临时的通知或用户交互。这个过程涉及到多个关键知识点,包括自定义视图、动画效果、触摸事件处理以及布局设计。接下来,...

    android利用windowmanager的伸缩式窗口

    在Android开发中,WindowManager是一个非常重要的服务,它允许开发者将视图添加到系统的顶级窗口层次结构中,实现各种自定义的界面效果。本篇主要探讨如何利用WindowManager的`addView()`方法来创建一个可伸缩的弹出...

    android界面切换之动画效果全汇总

    关于菜单动画,文档中提到的菜单动画并不是指设备物理菜单键的弹出菜单,而是基于Android SDK提供的android.view.animation.TranslateAnimation类实现的动画效果。TranslateAnimation可以实现Activity内部视图组件的...

    Android之富有动感的底部弹窗动画效果

    "Android之富有动感的底部弹窗动画效果"这个主题,正是聚焦于如何在Android平台上创建一种炫酷且实用的底部弹出窗口(Bottom Sheet)动画。这种动画效果可以使应用更具活力,提升用户的交互体验。 首先,我们需要...

    简单实用Android底部菜单滑出popupwindow案例

    本案例聚焦于如何实现一个简单的、从底部滑出的PopupWindow,它能以动画形式展示菜单项,且易于集成到任何应用程序中。下面将详细介绍实现这个功能的关键知识点。 1. PopupWindow基础: PopupWindow是Android中的...

    Android仿京东淘宝侧滑筛选

    在实现侧滑筛选时,我们可以利用PopupWindow的这一特性,将其设置为从屏幕边缘滑出的效果。以下是一些关键步骤: 1. 创建PopupWindow对象,指定布局资源和宽度、高度。 2. 设置PopupWindow的动画效果,通常可以使用...

    安卓Android源码——Fragment动画效果.rar

    总之,Fragment动画是提升Android应用用户体验的重要手段,通过掌握并灵活运用各种Fragment动画,开发者可以创建出更加生动和吸引人的用户界面。在分析提供的源码示例时,要关注动画的创建、设置和执行过程,以及...

Global site tag (gtag.js) - Google Analytics