android dialog开源,[Android开源框架]AnyDialog使用说明

AnyDialog 使用说明

Android高定制性,高易用性Dialog。

简介

链式调用

可自定义数据绑定

可自定义进出场动画

可自由控制显示大小和位置

可自定义背景变暗或者显示图片

一行代码实现背景高斯模糊

避免有导航栏时被遮挡或动画效果覆盖导航栏

因刘海屏dialog无法全屏显示,会使背景图无法延伸至刘海区域,若需实现背景显示图片或高斯模糊效果,建议使用AnyLayer

截图

截图效果较差,建议下载Demo体验

08ca2a49e4f1?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

demo_1.0.gif

08ca2a49e4f1?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

使用说明

集成

添加jitpack库

// build.gradle(Project:)

allprojects {

repositories {

...

maven { url 'https://www.jitpack.io' }

}

}

// build.gradle(Module:)

dependencies {

implementation 'com.github.goweii:AnyDialog:最新版本号'

}

新建布局

在布局文件根节点设置layout_width,layout_height,layout_margin等属性控制dialog的显示大小

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:layout_margin="20dp"

android:background="@color/colorAccent"

android:gravity="center"

android:orientation="vertical">

android:id="@+id/tv_1"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:background="@color/colorPrimary"

android:gravity="center"

tools:text="测试数据1" />

android:id="@+id/iv_1"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:gravity="center"

android:scaleType="centerCrop"

tools:src="@mipmap/ic_launcher" />

android:id="@+id/btn_1"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:text="按钮1" />

在代码中调用

AnyDialog.with(MainActivity.this)

.contentView(R.layout.dialog_test_1)

// .backgroundBlur(20) // 设置背景模糊度

.dimAmount(0.5f)

.cancelableOnTouchOutside(true)

.cancelableOnTouchOutside(true)

.contentAnim(new IAnim() {

@Override

public long inAnim(View content) {

AnimHelper.startTopInAnim(content, ANIM_DURATION);

return ANIM_DURATION;

}

@Override

public long outAnim(View content) {

AnimHelper.startTopOutAnim(content, ANIM_DURATION);

return ANIM_DURATION;

}

})

.bindData(new IDataBinder() {

@Override

public void bind(AnyDialog anyDialog) {

// 绑定的数据

}

})

.onClick(R.id.btn_1, new View.OnClickListener() {

@Override

public void onClick(View v) {

// 点击事件

}

})

.show();

常用方法

with(@NonNull Context context)

创建一个实例对象

contentView(View contentView)

设置Dialog主体布局

contentView(@LayoutRes int contentViewId)

设置Dialog主体布局

gravity(int gravity)

设置Dialog位置,如Gravity.BOTTOM

cancelableOnTouchOutside(boolean cancelable)

设置点击外部关闭

cancelableOnClickKeyBack(boolean cancelable)

设置点击返回键关闭

bindData(IDataBinder dataBinder)

绑定数据

onClick(@IdRes int viewId, OnDialogClickListener listener)

单个View添加点击事件

onClick(OnDialogClickListener listener, @IdRes int... viewIds)

多个View添加点击事件

onClickToDismiss(@IdRes int... viewIds)

点击该View关闭Dialog

getView(@IdRes int viewId)

获取View,可在IDataBinder接口中获取View

getViewHolder()

获取ViewHolder

onDialogShowListener(OnDialogShowListener onDialogShowListener)

dialog显示的回调

onShowing()

刚显示出来,进入动画还未执行

onShown()

进入动画执行完成

onDialogDismissListener(OnDialogDismissListener onDialogDismissListener)

dialog关闭的回调

onDismissing()

刚开始关闭,关闭动画还未执行

onDismissed()

关闭动画执行完成

contentAnim(IAnim contentAnim)

设置Dialog主体的进出场动画,会返回主体的根View,可对其自由定义动画

contentInAnim(@AnimRes int anim)

设置Dialog主体的进场动画

contentInAnim(@NonNull Animation anim)

设置Dialog主体的进场动画

contentOutAnim(@AnimRes int anim)

设置Dialog主体的出场动画

contentOutAnim(@NonNull Animation anim)

设置Dialog主体的出场动画

backgroundAnim(IAnim backgroundAnim)

设置Dialog背景的进出场动画,会返回背景View,可对其自由定义动画

backgroundInAnim(@AnimRes int anim)

设置Dialog背景的进场动画

backgroundInAnim(@NonNull Animation anim)

设置Dialog背景的进场动画

backgroundOutAnim(@AnimRes int anim)

设置Dialog背景的出场动画

backgroundOutAnim(@NonNull Animation anim)

设置Dialog背景的出场动画

defaultContentAnimDuration(long defaultAnimDuration)

设置Dialog主体的进出场动画默认时长

defaultBackgroundAnimDuration(long defaultAnimDuration)

设置Dialog背景的进出场动画默认时长

dimAmount(@FloatRange(from = 0, to = 1) float dimAmount)

设置Dialog显示时背景变暗程度,建议不要和下面的backgroundXxx方法同时使用

backgroundColorInt(@ColorInt int color)

设置Dialog背景颜色,建议为半透明值

backgroundColorRes(@ColorRes int color)

设置Dialog背景颜色,建议为半透明值

backgroundBlurRadius(@FloatRange(from = 0, fromInclusive = false, to = 25) float radius)

设置Dialog背景高斯模糊效果的半径

backgroundBlurScale(@FloatRange(from = 1) float scale)

设置Dialog背景高斯模糊效果Bitmap的缩放因子,当你的半径较大时,建议设置这个,可以加快运行速度

backgroundBitmap(Bitmap bitmap)

设置Dialog背景显示一个Bitmap

backgroundResource(@DrawableRes int resource)

设置Dialog背景显示一个资源文件

backgroundDrawable(Drawable drawable)

设置Dialog背景显示一个Drawable

show()

显示

dismiss()

关闭

注意

发现 bug 请联系 QQ302833254

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值