实例介绍
【实例简介】安卓各种对话框
【实例截图】
【核心代码】
package com.flyco.dialogsamples.ui; import android.content.Context; import android.graphics.Color; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.Gravity; import android.view.View; import android.widget.AdapterView; import android.widget.ExpandableListView; import com.flyco.dialogsamples.R; import com.flyco.dialogsamples.adapter.HomeAdapter; import com.flyco.dialogsamples.adapter.TestAdapter; import com.flyco.dialogsamples.extra.CustomBaseDialog; import com.flyco.dialogsamples.extra.IOSTaoBaoDialog; import com.flyco.dialogsamples.extra.ShareBottomDialog; import com.flyco.dialogsamples.extra.ShareTopDialog; import com.flyco.dialogsamples.utils.DiaogAnimChoose; import com.flyco.dialogsamples.utils.T; import com.flyco.dialogsamples.utils.ViewFindUtils; import com.flyco.animation.BaseAnimatorSet; import com.flyco.animation.FadeExit.FadeExit; import com.flyco.animation.FlipEnter.FlipVerticalSwingEnter; import com.flyco.dialog.entity.DialogMenuItem; import com.flyco.dialog.listener.OnBtnClickL; import com.flyco.dialog.listener.OnBtnLeftClickL; import com.flyco.dialog.listener.OnBtnRightClickL; import com.flyco.dialog.listener.OnOperItemClickL; import com.flyco.dialog.widget.ActionSheetDialog; import com.flyco.dialog.widget.MaterialDialog; import com.flyco.dialog.widget.MaterialTipDialog; import com.flyco.dialog.widget.NormalDialog; import com.flyco.dialog.widget.NormalListDialog; import com.flyco.dialog.widget.NormalTipDialog; import java.util.ArrayList; public class DialogHomeActivity extends AppCompatActivity implements ExpandableListView.OnChildClickListener { private Context context = this; public static String[] groups = {"Default Inner Dialog", "Custom Dialog", "Default Inner Anim", "Custom Anim"}; public static String[][] childs = { /**Default Inner Dialog*/ { "NormalDialog StyleOne", "NormalDialog StyleTwo", "NormalDialog Custom Attr", "NormalTipDialog StyleOne", "NormalTipDialog StyleTwo", "MaterialDialog", "MaterialDialog NoTitle", "MaterialTipDialog", "NormalListDialog", "NormalListDialog Custom Attr", "NormalListDialog No Title", "NormalListDialog DataSource String[]", "NormalListDialog DataSource Adapter", "ActionSheetDialog", "ActionSheetDialog NoTitle" }, /**Custom Dialog*/ { "Custome Dialog extends BaseDialog", "Custome Dialog extends BottomBaseDialog", "Custome Dialog extends TopBaseDialog" }, /**Default Inner Animation*/ { "Show Anim", "Dismiss Anim" }, /**Custom Anim*/ { "Custom Anim like ios taobao" } }; private ArrayList<DialogMenuItem> testItems = new ArrayList<>(); private String[] stringItems = {"收藏", "下载", "分享", "删除", "歌手", "专辑"}; private BaseAnimatorSet bas_in; private BaseAnimatorSet bas_out; private ExpandableListView elv; public void setBasIn(BaseAnimatorSet bas_in) { this.bas_in = bas_in; } public void setBasOut(BaseAnimatorSet bas_out) { this.bas_out = bas_out; } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.ac_dialog_home); testItems.add(new DialogMenuItem("收藏", R.mipmap.ic_winstyle_favor)); testItems.add(new DialogMenuItem("下载", R.mipmap.ic_winstyle_download)); testItems.add(new DialogMenuItem("分享", R.mipmap.ic_winstyle_share)); testItems.add(new DialogMenuItem("删除", R.mipmap.ic_winstyle_delete)); testItems.add(new DialogMenuItem("歌手", R.mipmap.ic_winstyle_artist)); testItems.add(new DialogMenuItem("专辑", R.mipmap.ic_winstyle_album)); bas_in = new FlipVerticalSwingEnter(); bas_out = new FadeExit(); View decorView = getWindow().getDecorView(); elv = ViewFindUtils.find(decorView, R.id.elv); HomeAdapter adapter = new HomeAdapter(context); elv.setAdapter(adapter); // extend all group for (int i = 0; i < groups.length; i ) { elv.expandGroup(i); } elv.setOnChildClickListener(this); elv.setOnGroupClickListener(new ExpandableListView.OnGroupClickListener() { @Override public boolean onGroupClick(ExpandableListView parent, View v, int groupPosition, long id) { return true; } }); } @Override public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) { /**Default Inner Dialog*/ if (groupPosition == 0) { if (childPosition == 0) { NormalDialogStyleOne(); } else if (childPosition == 1) { NormalDialogStyleTwo(); } else if (childPosition == 2) { NormalDialogCustomAttr(); } else if (childPosition == 3) { NormalTipDialogStyleOne(); } else if (childPosition == 4) { NormalTipDialogStyleTwo(); } else if (childPosition == 5) { MaterialDialog(); } else if (childPosition == 6) { MaterialDialogNoTitle(); } else if (childPosition == 7) { MaterialTipDialog(); } else if (childPosition == 8) { NormalListDialog(); } else if (childPosition == 9) { NormalListDialogCustomAttr(); } else if (childPosition == 10) { NormalListDialogNoTitle(); } else if (childPosition == 11) { NormalListDialogStringArr(); } else if (childPosition == 12) { NormalListDialogAdapter(); } else if (childPosition == 13) { ActionSheetDialog(); } else if (childPosition == 14) { ActionSheetDialogNoTitle(); } } /**Custom Dialog*/ if (groupPosition == 1) { if (childPosition == 0) { final CustomBaseDialog dialog = new CustomBaseDialog(context); dialog.show(); } else if (childPosition == 1) { final ShareBottomDialog dialog = new ShareBottomDialog(context, elv); dialog.showAnim(bas_in)// .show();// // .show(0, 100); } else if (childPosition == 2) { final ShareTopDialog dialog = new ShareTopDialog(context); dialog.showAnim(bas_in)// .show(); // .show(0, 100); } } /**Default Inner Anim*/ if (groupPosition == 2) { if (childPosition == 0) { DiaogAnimChoose.showAnim(context); } else if (childPosition == 1) { DiaogAnimChoose.dissmissAnim(context); } } /**Custom Anim*/ if (groupPosition == 3) { if (childPosition == 0) { final IOSTaoBaoDialog dialog = new IOSTaoBaoDialog(context, (View) elv.getParent()); dialog.show(); // .show(0, 100); } } return false; } private void NormalDialogStyleOne() { final NormalDialog dialog = new NormalDialog(context); dialog.content("是否确定退出程序?")// .showAnim(bas_in)// .dismissAnim(bas_out)// .show(); dialog.setOnBtnLeftClickL(new OnBtnLeftClickL() { @Override public void onBtnLeftClick() { T.showShort(context, "onBtnLeftClick"); dialog.dismiss(); } }); dialog.setOnBtnRightClickL(new OnBtnRightClickL() { @Override public void onBtnRightClick() { T.showShort(context, "onBtnRightClick"); dialog.dismiss(); } }); } private void NormalDialogStyleTwo() { final NormalDialog dialog = new NormalDialog(context); dialog.content("为保证咖啡豆的新鲜度和咖啡的香味,并配以特有的传统烘焙和手工冲。")// .style(NormalDialog.STYLE_TWO)// .titleTextSize(23)// .showAnim(bas_in)// .dismissAnim(bas_out)// .show(); dialog.setOnBtnLeftClickL(new OnBtnLeftClickL() { @Override public void onBtnLeftClick() { T.showShort(context, "onBtnLeftClick定"); dialog.dismiss(); } }); dialog.setOnBtnRightClickL(new OnBtnRightClickL() { @Override public void onBtnRightClick() { T.showShort(context, "onBtnRightClick"); dialog.dismiss(); } }); } private void NormalDialogCustomAttr() { final NormalDialog dialog = new NormalDialog(context); dialog.isTitleShow(false)// .bgColor(Color.parseColor("#383838"))// .cornerRadius(5)// .content("是否确定退出程序?")// .contentGravity(Gravity.CENTER)// .contentTextColor(Color.parseColor("#ffffff"))// .dividerColor(Color.parseColor("#222222"))// .btnTextSize(15.5f, 15.5f)// .btnTextColor(Color.parseColor("#ffffff"), Color.parseColor("#ffffff"))// .btnColorPress(Color.parseColor("#2B2B2B"))// .widthScale(0.85f)// .showAnim(bas_in)// .dismissAnim(bas_out)// .show(); dialog.setOnBtnLeftClickL(new OnBtnLeftClickL() { @Override public void onBtnLeftClick() { T.showShort(context, "onBtnLeftClick"); dialog.dismiss(); } }); dialog.setOnBtnRightClickL(new OnBtnRightClickL() { @Override public void onBtnRightClick() { T.showShort(context, "onBtnRightClick"); dialog.dismiss(); } }); } private void NormalTipDialogStyleOne() { final NormalTipDialog dialog = new NormalTipDialog(context); dialog.content("你今天的抢购名额已用完~")// .btnText("继续逛逛")// .showAnim(bas_in)// .dismissAnim(bas_out)// .show(); dialog.setOnBtnClickL(new OnBtnClickL() { @Override public void onBtnClick() { dialog.dismiss(); } }); } private void NormalTipDialogStyleTwo() { final NormalTipDialog dialog = new NormalTipDialog(context); dialog.content("你今天的抢购名额已用完~")// .style(NormalTipDialog.STYLE_TWO)// .btnText("继续逛逛")// .showAnim(bas_in)// .dismissAnim(bas_out)// .show(); dialog.setOnBtnClickL(new OnBtnClickL() { @Override public void onBtnClick() { dialog.dismiss(); } }); } private void MaterialDialog() { final MaterialDialog dialog = new MaterialDialog(context); dialog.content( "嗨!这是一个 MaterialDialog. 它非常方便使用,你只需将它实例化,这个美观的对话框便会自动地显示出来。" "它简洁小巧,完全遵照 Google 2014 年发布的 Material Design 风格,希望你能喜欢它!^ ^")// .btnText("取消", "确定")// .showAnim(bas_in)// .dismissAnim(bas_out)// .show(); dialog.setOnBtnLeftClickL(new OnBtnLeftClickL() { @Override public void onBtnLeftClick() { T.showShort(context, "onBtnLeftClick"); dialog.dismiss(); } }); dialog.setOnBtnRightClickL(new OnBtnRightClickL() { @Override public void onBtnRightClick() { T.showShort(context, "onBtnRightClick"); dialog.dismiss(); } }); } private void MaterialDialogNoTitle() { final MaterialDialog dialog = new MaterialDialog(context); dialog.isTitleShow(false)// .content("为保证咖啡豆的新鲜度和咖啡的香味,并配以特有的传统烘焙和手工冲。")// .btnText("确定", "取消")// .showAnim(bas_in)// .dismissAnim(bas_out)// .show(); dialog.setOnBtnLeftClickL(new OnBtnLeftClickL() { @Override public void onBtnLeftClick() { T.showShort(context, "onBtnLeftClick"); dialog.dismiss(); } }); dialog.setOnBtnRightClickL(new OnBtnRightClickL() { @Override public void onBtnRightClick() { T.showShort(context, "onBtnRightClick"); dialog.dismiss(); } }); } private void MaterialTipDialog() { final MaterialTipDialog dialog = new MaterialTipDialog(context); dialog// // .isTitleShow(false)// .content("为保证咖啡豆的新鲜度和咖啡的香味,并配以特有的传统烘焙和手工冲。")// .btnText("确定")// .showAnim(bas_in)// .dismissAnim(bas_out)// .show(); dialog.setOnBtnClickL(new OnBtnClickL() { @Override public void onBtnClick() { dialog.dismiss(); } }); } private void NormalListDialog() { final NormalListDialog dialog = new NormalListDialog(context, testItems); dialog.title("请选择")// .showAnim(bas_in)// .dismissAnim(bas_out)// .show(); dialog.setOnOperItemClickL(new OnOperItemClickL() { @Override public void onOperItemClick(AdapterView<?> parent, View view, int position, long id) { T.showShort(context, testItems.get(position).operName); dialog.dismiss(); } }); } private void NormalListDialogCustomAttr() { final NormalListDialog dialog = new NormalListDialog(context, testItems); dialog.title("请选择")// .titleTextSize_SP(18)// .titleBgColor(Color.parseColor("#409ED7"))// .itemPressColor(Color.parseColor("#85D3EF"))// .itemTextColor(Color.parseColor("#303030"))// .itemTextSize(14)// .cornerRadius(0)// .widthScale(0.8f)// .show(R.style.myDialogAnim); dialog.setOnOperItemClickL(new OnOperItemClickL() { @Override public void onOperItemClick(AdapterView<?> parent, View view, int position, long id) { T.showShort(context, testItems.get(position).operName); dialog.dismiss(); } }); } private void NormalListDialogNoTitle() { final NormalListDialog dialog = new NormalListDialog(context, testItems); dialog.title("请选择")// .isTitleShow(false)// .itemPressColor(Color.parseColor("#85D3EF"))// .itemTextColor(Color.parseColor("#303030"))// .itemTextSize(15)// .cornerRadius(2)// .widthScale(0.75f)// .show(); dialog.setOnOperItemClickL(new OnOperItemClickL() { @Override public void onOperItemClick(AdapterView<?> parent, View view, int position, long id) { T.showShort(context, testItems.get(position).operName); dialog.dismiss(); } }); } private void NormalListDialogStringArr() { final NormalListDialog dialog = new NormalListDialog(context, stringItems); dialog.title("请选择")// .show(R.style.myDialogAnim); dialog.setOnOperItemClickL(new OnOperItemClickL() { @Override public void onOperItemClick(AdapterView<?> parent, View view, int position, long id) { T.showShort(context, testItems.get(position).operName); dialog.dismiss(); } }); } private void NormalListDialogAdapter() { final NormalListDialog dialog = new NormalListDialog(context, new TestAdapter(context, testItems)); dialog.title("请选择")// .show(R.style.myDialogAnim); dialog.setOnOperItemClickL(new OnOperItemClickL() { @Override public void onOperItemClick(AdapterView<?> parent, View view, int position, long id) { T.showShort(context, testItems.get(position).operName); dialog.dismiss(); } }); } private void ActionSheetDialog() { final String[] stringItems = {"接收消息并提醒", "接收消息但不提醒", "收进群助手且不提醒", "屏蔽群消息"}; final ActionSheetDialog dialog = new ActionSheetDialog(context, stringItems, null); dialog.title("选择群消息提醒方式\r\n(该群在电脑的设置:接收消息并提醒)")// .titleTextSize_SP(14.5f)// .show(); dialog.setOnOperItemClickL(new OnOperItemClickL() { @Override public void onOperItemClick(AdapterView<?> parent, View view, int position, long id) { T.showShort(context, stringItems[position]); dialog.dismiss(); } }); } private void ActionSheetDialogNoTitle() { final String[] stringItems = {"版本更新", "帮助与反馈", "退出QQ"}; final ActionSheetDialog dialog = new ActionSheetDialog(context, stringItems, elv); dialog.isTitleShow(false).show(); dialog.setOnOperItemClickL(new OnOperItemClickL() { @Override public void onOperItemClick(AdapterView<?> parent, View view, int position, long id) { T.showShort(context, stringItems[position]); dialog.dismiss(); } }); } @Override public void onBackPressed() { final NormalDialog dialog = new NormalDialog(context); dialog.content("亲,真的要走吗?再看会儿吧~(●—●)")// .style(NormalDialog.STYLE_TWO)// .titleTextSize(23)// .btnText("继续逛逛", "残忍退出")// .btnTextColor(Color.parseColor("#383838"), Color.parseColor("#D4D4D4"))// .btnTextSize(16f, 16f)// .showAnim(bas_in)// .dismissAnim(bas_out)// .show(); dialog.setOnBtnLeftClickL(new OnBtnLeftClickL() { @Override public void onBtnLeftClick() { dialog.dismiss(); } }); dialog.setOnBtnRightClickL(new OnBtnRightClickL() { @Override public void onBtnRightClick() { dialog.superDismiss(); finish(); } }); } }
标签: Dialog
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论