项目中经常需要底部d出框,这里我整理一下其中我用的比较顺手的一个方式(底部d出一个横向满屏的dialog)。
效果图如下所示(只显示关键部分):
步骤如下所示:
1.定义一个dialog的布局(lay_share.xml)
<?xml version="1.0" enCoding="utf-8"?><linearLayout xmlns:androID="http://schemas.androID.com/apk/res/androID"androID:layout_wIDth="match_parent"androID:layout_height="match_parent"androID:background="@color/white"androID:orIEntation="vertical"><linearLayoutandroID:layout_wIDth="match_parent"androID:layout_height="wrap_content"androID:gravity="center_vertical"androID:orIEntation="horizontal"androID:paddingBottom="@dimen/padding_15"androID:paddingtop="@dimen/padding_15"><VIEwandroID:layout_wIDth="0dp"androID:layout_height="0dp"androID:layout_weight="1" /><TextVIEwandroID:layout_wIDth="wrap_content"androID:layout_height="wrap_content"androID:drawablepadding="@dimen/padding_5"androID:drawabletop="@mipmap/ic_weixin_share"androID:gravity="center"androID:text="微信"androID:textcolor="@color/color_999999"androID:textSize="@dimen/text_14" /><VIEwandroID:layout_wIDth="0dp"androID:layout_height="0dp"androID:layout_weight="1" /><TextVIEwandroID:layout_wIDth="wrap_content"androID:layout_height="wrap_content"androID:drawablepadding="@dimen/padding_5"androID:drawabletop="@mipmap/ic_circle_share"androID:gravity="center"androID:text="朋友圈"androID:textcolor="@color/color_999999"androID:textSize="@dimen/text_14" /><VIEwandroID:layout_wIDth="0dp"androID:layout_height="0dp"androID:layout_weight="1" /><TextVIEwandroID:layout_wIDth="wrap_content"androID:layout_height="wrap_content"androID:drawablepadding="@dimen/padding_5"androID:drawabletop="@mipmap/ic_weibo_share"androID:gravity="center"androID:text="微博"androID:textcolor="@color/color_999999"androID:textSize="@dimen/text_14" /><VIEwandroID:layout_wIDth="0dp"androID:layout_height="0dp"androID:layout_weight="1" /></linearLayout><VIEwandroID:layout_wIDth="match_parent"androID:layout_height="0.5dp"androID:layout_marginleft="@dimen/padding_10"androID:layout_marginRight="@dimen/padding_10"androID:background="@color/color_c9c9c9" /><TextVIEwandroID:ID="@+ID/tv_cancel"androID:layout_wIDth="match_parent"androID:layout_height="wrap_content"androID:gravity="center"androID:padding="@dimen/padding_15"androID:text="取消"androID:textcolor="@color/color_666666"androID:textSize="@dimen/text_18" /></linearLayout>
2.定义d出框d出动画(dialog_enter.xml)
<?xml version="1.0" enCoding="utf-8"?><set xmlns:androID="http://schemas.androID.com/apk/res/androID"><translateandroID:duration="300"androID:fromYDelta="100%p"androID:toYDelta="0" /></set>dialog_enter.xml
3.定义d出框隐藏动画(dialog_exit.xml)
<?xml version="1.0" enCoding="utf-8"?><set xmlns:androID="http://schemas.androID.com/apk/res/androID"><translateandroID:duration="300"androID:fromYDelta="0"androID:toYDelta="100%p" /></set>dialog_exit.xml
4.定义动画style
<!--d出框动画--><style name="share_animation" parent="androID:Animation"><item name="androID:windowEnteranimation">@anim/dialog_enter</item><item name="androID:windowExitAnimation">@anim/dialog_exit</item></style>
5.定义对话框样式
<!-- 对话框样式 --><style name="dialog_bottom_full" parent="androID:style/theme.Dialog"><item name="androID:windowBackground">@androID:color/transparent</item><item name="androID:windowNoTitle">true</item><item name="androID:windowIsfloating">true</item><item name="androID:windowContentOverlay">@null</item><item name="androID:scrollHorizontally">true</item></style>
6.最后,在需要从底部d出dialog的地方,直接调用showDialog()方法
/*** 显示分享d出框*/private voID showDialog() {if (mShareDialog == null) {initShareDialog();}mShareDialog.show();}/*** 初始化分享d出框*/private voID initShareDialog() {mShareDialog = new Dialog(this,R.style.dialog_bottom_full);mShareDialog.setCanceledOntouchOutsIDe(true);mShareDialog.setCancelable(true);Window window = mShareDialog.getwindow();window.setGravity(Gravity.BottOM);window.setwindowAnimations(R.style.share_animation);VIEw vIEw = VIEw.inflate(this,R.layout.lay_share,null);vIEw.findVIEwByID(R.ID.tv_cancel).setonClickListener(new VIEw.OnClickListener() {@OverrIDepublic voID onClick(VIEw vIEw) {if (mShareDialog != null && mShareDialog.isShowing()) {mShareDialog.dismiss();}}});window.setContentVIEw(vIEw);window.setLayout(WindowManager.LayoutParams.MATCH_PARENT,WindowManager.LayoutParams.WRAP_CONTENT);//设置横向全屏}
以上所述是小编给大家介绍的AndroID 从底部d出Dialog(横向满屏)的实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对编程小技巧网站的支持!
总结以上是内存溢出为你收集整理的Android 从底部d出Dialog(横向满屏)的实例代码全部内容,希望文章能够帮你解决Android 从底部d出Dialog(横向满屏)的实例代码所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)