android官方底部dialog,Android Dialog从底部弹出和收回

先上个大图!

8943d9d6f49d

1541650702539.gif

先创建anim文件夹,在文件夹中加入in_bottom.xml和out_bottom.xml进入和退出动画文件

在in_bottom.xml文件写入:

android:duration="300"

android:fromYDelta="100%p"

android:toYDelta="0"/>

在out _bottom.xml文件写入:

android:duration="300"

android:fromYDelta="0"

android:toYDelta="100%p"/>

这样我们就创建了两个动画文件,然后在style.xml文件引用着两个文件。

(./res/values文件下有styles文件就直接添加下面代码,没有styles文件就先创建这个文件)

@anim/in_bottom

@anim/out_bottom

创建好这三个文件之后我们就有动画效果的style 了

创建一个abstract类,作为一个基类,以后有类似从底部弹出dialog需求方便扩展。

public abstract class BottomDialogBase extends Dialog {

public BottomDialogBase(Context context) {

super(context);

init();

}

protected void init(){

Window win = this.getWindow();

win.requestFeature(Window.FEATURE_NO_TITLE);

onCreate();

win.getDecorView().setPadding(0, 0, 0, 0);

WindowManager.LayoutParams lp = win.getAttributes();

lp.width = WindowManager.LayoutParams.MATCH_PARENT;

lp.height = WindowManager.LayoutParams.WRAP_CONTENT;

lp.windowAnimations = R.style.BottomInAndOutStyle;

lp.gravity = Gravity.BOTTOM;

win.setAttributes(lp);

win.setBackgroundDrawableResource(android.R.color.transparent);

}

protected abstract void onCreate();

}

基类就这么多东西了,然后就是使用方法。开始时候那个图片的弹窗效果就是用下面这个类完成的

public class BottomDialogDemo extends BottomDialogBase implements

View.OnClickListener{

public BottomDialogDemo(Context context) {

super(context);

}

@Override

protected void onCreate() {

setContentView(R.layout.dialog_bottom_demo);

findViewById(R.id.dialog_ok).setOnClickListener(this);

}

@Override

public void onClick(View v) {

dismiss();

}

}

调用的时候只需要

BottomDialogDemo dialog = new BottomDialogDemo(context);

dialog.show();

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值