[原创]自定义view之:快速开发一款Material Design风格的dialog的开源项目MDDialog
随着google开始主导Material Design风格的设计,越来越多的app开始使用Material Design风格来设计自己的UI。虽然在Android Studio中集成了多种快速开发框架,但是google始终没有推出自己的MD风格的dialog,为了能够在项目中快速开发MDDialog,我开源了一款自己开发的MDDialog,继承于Dialog,具有高度自由的定制属性。
项目地址:
https://github.com/Carbs0126/MDDialog
先上截图:
添加自定义view:

添加String[]:

主要特点:
1.使用与AlertDialog相同的builder构造方式,不需要改变编程习惯。
2.可以选择“显示/隐藏”顶部标题或者底部按钮。可以选择隐藏两个按钮或者某一个按钮。
3.使用setMessages(String[])方法,可以使用字符串数组为MDDialog添加多个item,同时可以setContentViewClickable设置item是否可点击,以及使用setOnItemClickListener(...)方法为item添加点击响应事件。
4.可以使用setContentView(...)方法为此dialog添加布局,其中传入的参数可以是布局id,也可以是view对象。
5.可以使用builder中的setContentViewOperator(new MDDialog.ContentViewOperator() {
@Override
public void operate(View contentView) {
//EditText et = (EditText) contentView.findViewById(R.id.edit0);
//et.setHint("hint set in operator");
}
})
方法,为添加的contentview添加一系列的操作,其中contentview是添加至MDDialog中的view
6.可以设置MDDialog的四角的半径
7.MDDialog为每个item设置准确的按下效果,包括圆角背景的按下效果。
Author:Carbs.Wang
Email:yeah0126#yeah.net
使用方法:
创建 MDDialog 的两种方式
1.设置 customize view :
new MDDialog.Builder(ActivityMain.this)
// .setContentView(customizedView)
.setContentView(R.layout.content_dialog)
.setContentViewOperator(new MDDialog.ContentViewOperator() {
@Override
public void operate(View contentView) {
EditText et = (EditText) contentView.findViewById(R.id.edit0);
et.setHint("hint set in operator");
}
})
.setTitle("添加")
.setNegativeButton(new View.OnClickListener() {
@Override
public void onClick(View v) {
}
})
.setPositiveButton(new View.OnClickListener() {
@Override
public void onClick(View v) {
}
})
.setPositiveButtonMultiListener(new MDDialog.OnMultiClickListener() {
@Override
public void onClick(View clickedView, View contentView) {
EditText et = (EditText) contentView.findViewById(R.id.edit0);
Toast.makeText(getApplicationContext(), "edittext 0 : " + et.getText(), Toast.LENGTH_SHORT).show();
}
})
.setNegativeButtonMultiListener(new MDDialog.OnMultiClickListener() {
@Override
public void onClick(View clickedView, View contentView) {
EditText et = (EditText) contentView.findViewById(R.id.edit1);
Toast.makeText(getApplicationContext(), "edittext 1 : " + et.getText(), Toast.LENGTH_SHORT).show();
}
})
.setWidthMaxDp(600)
// .setShowTitle(false)//default is true
// .setShowButtons(true)//default is true
.create()
.show(); 2.设置 String[] messages final String[] messages = new String[]{"两个黄鹂鸣翠柳,一行白鹭上青天。",
"窗含西岭千秋雪,门泊东吴万里船。",
"君不见,黄河之水天上来,奔流到海不复回;君不见,高堂明镜悲白发,朝如青丝暮如雪。"};
new MDDialog.Builder(ActivityMain.this)
.setMessages(messages)
.setTitle("一首古诗")
.setNegativeButton(new View.OnClickListener() {
@Override
public void onClick(View v) {
}
})
.setPositiveButton(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(getApplicationContext(), "positive", Toast.LENGTH_SHORT).show();
}
})
.setOnItemClickListener(new MDDialog.OnItemClickListener() {
@Override
public void onItemClicked(int index) {
Toast.makeText(getApplicationContext(), messages[index], Toast.LENGTH_SHORT).show();
}
})
.setWidthMaxDp(600)
.setShowTitle(false)
.setShowButtons(true)
.create()
.show();
引入:
dependencies {
compile 'cn.carbs.android:MDDialog:1.0.0'
}
项目地址:
https://github.com/Carbs0126/MDDialog
[原创]自定义view之:快速开发一款Material Design风格的dialog的开源项目MDDialog的更多相关文章
- SNF快速开发平台MVC-富文本控件集成了百度开源项目editor
一.效果如下: 二.在框架当中调用代码如下: 1.在js里配置如下: <script type="text/javascript"> var viewModel =fu ...
- 自定义 Material Design风格的提示框
关闭 自定义 Material Design风格的提示框 2016-04-24 10:55 152人阅读 评论(0) 收藏 举报 版权声明:本文为博主原创文章,未经博主允许不得转载. 其实在14年谷歌 ...
- Android开发实战之拥有Material Design风格的侧滑布局
在实现开发要求中,有需要会使用抽屉式布局,类似于QQ5.0的侧滑菜单,实现的方式有很多种,可以自定义控件,也可以使用第三方开源库. 同样的谷歌也推出了自己的侧滑组件——DrawLayout,使用方式也 ...
- github上十二款最著名的Android播放器开源项目
1.ijkplayer 项目地址: https://github.com/Bilibili/ijkplayer 介绍:Ijkplayer 是Bilibili发布的基于 FFplay 的轻量级 Andr ...
- Android 自定义View修炼-Android开发之自定义View开发及实例详解
在开发Android应用的过程中,难免需要自定义View,其实自定义View不难,只要了解原理,实现起来就没有那么难. 其主要原理就是继承View,重写构造方法.onDraw,(onMeasure)等 ...
- 创建Material Design风格Android应用--自定义阴影和裁剪视图
之前已经写过通过应用主题和使用ListView, CardView,应用Material Design样式,同一时候都都能够通过support library向下兼容.今天要写的阴影和视图裁剪.无法向 ...
- 【Android UI设计与开发】9:滑动菜单栏(一)开源项目SlidingMenu的使用和示例
一.SlidingMenu简介 相信大家对SlidingMenu都不陌生了,它是一种比较新的设置界面或配置界面的效果,在主界面左滑或者右滑出现设置界面效果,能方便的进行各种操作.很多优秀的应用都采用了 ...
- 不会 Web 开发,也能让数据“动”起来的开源项目!
本文面向有 Python 基础的小伙伴,有 Web 基础的更好 作者:HelloGitHub-吱吱 这里是 HelloGitHub 推出的<讲解开源项目>系列,今天要向小伙伴们介绍的是一个 ...
- Android开发实战之拥有Material Design风格的折叠布局
关于折叠布局,也许你并不陌生,最新版的陌陌,或者一些其他的社交APP都有一个折叠布局.折叠布局,让我们的APP更加具有交互性,同时也更加美观,先来展示一下效果图: 这是我个人做的一个APP主界面,可以 ...
随机推荐
- 看起来像一个输入框的input,实际上是有两个input
看起来像一个输入框的input,实际上是有两个input
- 利用dbms_metadata.get_ddl查看DDL语句
http://www.cnblogs.com/aocle/archive/2011/10/13/2209790.html 当我们想要查看某个表或者是表空间的DDL的时候,可以利用dbms_metada ...
- C++混合编程之idlcpp教程Lua篇(3)
上一篇 C++混合编程之idlcpp教程Lua篇(2) 是一个 hello world 的例子,仅仅涉及了静态函数的调用.这一篇会有新的内容. 与LuaTutorial0相似,工程LuaTutoria ...
- DIV与SPAN的区别
DIV 和 SPAN 元素最大的特点是默认都没有对元素内的对象进行任何格式化渲染.主要用于应用样式表(共同点). 两者最明显的区别在于DIV是块元素,而SPAN是行内元素(也译作内嵌元素). 详解:1 ...
- Android 控件架构
如果说Android上的app是一个有血有肉的人的话,那么人靠衣装马靠鞍,那么控件就是把app装扮的漂漂亮亮的“衣服”.那么安卓的控件到底是如何架构,又是如何渲染的了. 无论是什么控件,在Androi ...
- beetle 2.7海量消息广播测试
由于client资源限制,只进行了300物体互动广播测试:物体活动频率是每秒20次,服务器每秒转发的消息量大概180W条. 转发消息结构: class Po : IMessage { public i ...
- [DNX]解决dnu restore时找不到Newtonsoft.Json的问题
在Mac上用最新版的dnx 1.0.0-beta5-11855进行dnu restore,出现下面的错误: System.IO.FileNotFoundException: Could not loa ...
- [JS2] JS是弱类型
<html> <head> <title>JavaScript 是弱类型的</title> <Script Language="Java ...
- [matlab] MATLAB 界面编程 傻瓜教程
>_<:在 MATLAB 的命令窗口(Command Window)中运行 guide 命令,来打开 GUIDE 界面,如下: >_<:然后,选择空模板(Blang GUI), ...
- atitit groovy 总结java 提升效率
atitit groovy 总结java 提升效率 #---环境配置 1 #------安装麻烦的 2 三.创建groovy项目 2 3. 添加 Groovy 类 2 4. 编译运行groovy类 ...