Android从下往上(动画)滑出窗口
16lz
2021-01-26
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; // 保存弹出窗口布局@Overridepublic 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 {@Overridepublic 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>
更多相关文章
- Android一种欢迎界面全屏显示方法
- Android(安卓)PopupWindows使用
- Android--数据库操作辅助类:SQLiteOpenHelper
- AndroidStudio调用摄像头
- android-仿iOS弹出框
- RadioButton单选按钮实现RadioGroup.OnCheckedChangeListener
- RecyclerView指定布局管理器
- Android文字跑马灯
- android中的有道词典