由浅入深之自定义滑动弹框样式

/**
 * 第一章
 * 1.红色部分替换为你自己的布局
 * 2.黄色部分为样式和动画(看第二章)
 *    a.layout_view_dialog_intention_car 样式
 *    b.main_menu_animstyle              动画
 * 理解LayoutInflater布局的引入和弹框的显示
 */
public void init() {
    LayoutInflater mInflater = LayoutInflater.from(mActivity);
    mView = mInflater.inflate(R.layout.layout_view_dialog_intention_car, null);
    mDialog = new Dialog(mActivity, R.style.transparentFrameWindowStyle);
    mDialog.setContentView(mView, new ViewGroup.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT,
            ViewGroup.LayoutParams.WRAP_CONTENT));
    Window window = mDialog.getWindow();
    // 设置显示动画
    window.setWindowAnimations(R.style.main_menu_animstyle);
    WindowManager.LayoutParams wl = window.getAttributes();
    wl.x = 0;
    wl.y = mActivity.getWindowManager().getDefaultDisplay().getHeight();
    wl.width = ViewGroup.LayoutParams.MATCH_PARENT;
    wl.height = ViewGroup.LayoutParams.WRAP_CONTENT;
    // 设置显示位置
    mDialog.onWindowAttributesChanged(wl);
    mDialog.setCanceledOnTouchOutside(true);
    mDialog.show();
}


/**
 * 第二章 样式与动画
 * 理解动画和样式的引用
 */
<!--底部往上滑动弹框-->
<style  name="transparentFrameWindowStyle"parent="android:style/Theme.Dialog">
<item name="android:windowBackground">@drawable /bg</item>
</style>

<style name="main_menu_animstyle">
<item name="android:windowEnterAnimation">@anim /dialog_in_anim</item>
<item name="android:windowExitAnimation">@anim /dialog_out_anim</item>
</style>


/**
 * 第二章/第一节 动画
 * dialog_in_anim 和  dialog_out_anim
 * 理解如何实现
 */
<? xml version = "1.0"
encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:duration="500"
android:fromXDelta="0"
android:fromYDelta="1000"
android:toXDelta="0"
android:toYDelta="0"/>
</set>

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

/**
 *  第二章/第二节 样式(这是我项目中需要使用的 如果你不需要可以不用添加)
 */
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
<solid android:color="#00000000" />
<corners android:radius="20dip" />
<padding
android:bottom="5dp"
android:left="5dp"
android:right="5dp"
android:top="5dp" />
</shape>
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值