工作以来公司UI设计师出的Android效果图都是iOS风格的UIAlertView和UIActionSheet,新项目还是用原来那一套,不想重复造轮子,所以仿写了从iOS8开始支持的UIAlertController,统一UIAlertView和UIActionSheet的用法

目前还不支持添加EditText,后续会支持

效果图

基本使用

1.添加Gradle依赖

dependencies {
compile 'cn.bingoogolapple:bga-alertcontroller:latestVersion@aar' }

2.在java代码中使用BGAAlertController

public void showAlertView(View v) {
BGAAlertController alertController = new BGAAlertController(this, "我是标题", "我是很长很长很长很长很长很长很长很长很长很长很长很长的消息", BGAAlertController.AlertControllerStyle.Alert);
// 不管添加顺序怎样,AlertActionStyle.Cancel始终是在最底部的,AlertActionStyle.Default和AlertActionStyle.Destructive按添加的先后顺序显示
alertController.addAction(new BGAAlertAction("取消", BGAAlertAction.AlertActionStyle.Cancel, new BGAAlertAction.Delegate() {
@Override
public void onClick() {
showToast("点击了取消");
}
}));
alertController.addAction(new BGAAlertAction("其他1", BGAAlertAction.AlertActionStyle.Default, new BGAAlertAction.Delegate() {
@Override
public void onClick() {
showToast("点击了其他1");
}
}));
alertController.addAction(new BGAAlertAction("其他2", BGAAlertAction.AlertActionStyle.Default, new BGAAlertAction.Delegate() {
@Override
public void onClick() {
showToast("点击了其他2");
}
}));
alertController.addAction(new BGAAlertAction("确定", BGAAlertAction.AlertActionStyle.Destructive, new BGAAlertAction.Delegate() {
@Override
public void onClick() {
showToast("点击了确定");
}
}));
alertController.show();
} public void showActionSheet(View v) {
BGAAlertController alertController = new BGAAlertController(this, "我是标题", "我是很长很长很长很长很长很长很长很长很长很长很长很长的消息", BGAAlertController.AlertControllerStyle.ActionSheet);
// 不管添加顺序怎样,AlertActionStyle.Cancel始终是在最底部的,AlertActionStyle.Default和AlertActionStyle.Destructive按添加的先后顺序显示
alertController.addAction(new BGAAlertAction("取消", BGAAlertAction.AlertActionStyle.Cancel, new BGAAlertAction.Delegate() {
@Override
public void onClick() {
showToast("点击了取消");
}
}));
alertController.addAction(new BGAAlertAction("其他1", BGAAlertAction.AlertActionStyle.Default, new BGAAlertAction.Delegate() {
@Override
public void onClick() {
showToast("点击了其他1");
}
}));
alertController.addAction(new BGAAlertAction("其他2", BGAAlertAction.AlertActionStyle.Default, new BGAAlertAction.Delegate() {
@Override
public void onClick() {
showToast("点击了其他2");
}
}));
alertController.addAction(new BGAAlertAction("确定", BGAAlertAction.AlertActionStyle.Destructive, new BGAAlertAction.Delegate() {
@Override
public void onClick() {
showToast("点击了确定");
}
}));
alertController.show();
}

高级用法

1.如果您不满意默认的颜色,在自己项目的colors.xml中定义以下相应地颜色即可(不用全部定义,对不满意的值重新定义即可)

<resources>
<color name="ac_bg_translucent">#80808080</color>
<color name="ac_bg_content">#F9F9F9</color> <color name="ac_item_text_default">#007AFF</color>
<color name="ac_item_text_destructive">#FF3B30</color>
<color name="ac_item_bg_pressed">#EBEBEB</color> <color name="ac_alert_title">#000000</color>
<color name="ac_alert_message">#000000</color> <color name="ac_action_sheet_title">#929292</color>
<color name="ac_action_sheet_message">#929292</color>
</resources>

2.如果您不满意默认的间距和字体大小,在自己项目的colors.xml中定义以下相应的dimen(不用全部定义,对不满意的值重新定义即可)

<resources>
<dimen name="ac_radius">10dp</dimen>
<dimen name="ac_gap">10dp</dimen>
<dimen name="ac_line_height">1dp</dimen>
<dimen name="ac_item_text_size">18sp</dimen>
<dimen name="ac_action_sheet_text_size_title">14sp</dimen>
<dimen name="ac_action_sheet_text_size_message">14sp</dimen> <dimen name="ac_alert_text_size_title">18sp</dimen>
<dimen name="ac_alert_text_size_message">14sp</dimen>
</resources>

https://github.com/bingoogolapple/BGAAlertController-Android

仿写从iOS8开始支持的UIAlertController:BGAAlertController-Android的更多相关文章

  1. 仿写Windows7桌面和任务栏 HTML5+CSS3+Jquery实现

    过去一段时间零零散散的自学了一点点jquery的相关用法,基本上属于用到哪个了,就去查然后就学一点,没有系统的学过,深入的用法也不是特别了解,毕竟javascript基础就比较薄弱.经过一段时间的零敲 ...

  2. 安卓开发学习笔记(七):仿写腾讯QQ登录注册界面

    这段代码的关键主要是在我们的相对布局以及线性布局上面,我们首先在总体布局里设置为线性布局,然后再在里面设置为相对布局,这是一个十分常见的XML布局模式. 废话不多说,直接上代码:一.activity. ...

  3. SwiftUI - 一起来仿写微信APP之一首页列表视图

    简介 最近在学习 SwiftUI ,我一般都是先去学习界面布局,所以就想着仿写一下经常使用的软件的界面,所以先拿微信开刀.因为不想一次性发太多的内容,所以只好将主题分解,一部分一部分地去讲,接下来我们 ...

  4. ASP.NET WebAPI 14 仿写Filter管道

    WebAPI中有设计了几种管道(Channel),大概如下:HttpMessageHandler,ActionFilter管道,ExceptionFilter管道.在三种管道中HttpMessageH ...

  5. HTML: 仿写一个财经类静态的网页

    要求:仿写一个静态的网页,主要采用HTML+CSS+DIV的布局方式, 新建两个文件:demo.html.demo.css 图片素材:image.zip demo.html代码如下: <!doc ...

  6. 完全参照系统自带的DatePickerDialog、TimePickerDialog的源代码仿写的DateTimePickerDialog

    完全参照系统自带的DatePickerDialog.TimePickerDialog的源代码仿写的DateTimePickerDialog.具有同时选择日期.时间的功能.在2.2.2.3平台,显示的效 ...

  7. 仿写thinkphp的I方法

    自己定义一个方法仿写thinkphp的I 方法 <?php function I($key="",$default='',$function="") { ...

  8. 仿写confirm和alert弹框

    在工作中,我们常常会遇到原生的样式感觉比较丑,又和我们做的项目风格不搭.于是就有了仿写原生一些组件的念头,今天我就带大家仿写一下confirm和alert样式都可以自己修改. 有些的不好的地方请指出来 ...

  9. iOS仿写下厨房

    把之前简书的博客搬到博客园了,还是放在一个地方看着舒服. 先看一下做的效果,是不是还不错?(可以看一下早餐那块的轮播,上面盖着一个都是点点的图片,但是它不是和轮播一起滚动的,是盖在轮播上面的,需要在那 ...

随机推荐

  1. Log4J日志配置具体解释

    一.Log4j简单介绍 Log4j有三个基本的组件:Loggers(记录器),Appenders (输出源)和Layouts(布局).这里可简单理解为日志类别,日志要输出的地方和日志以何种形式输出.综 ...

  2. keras中使用预训练模型进行图片分类

    keras中含有多个网络的预训练模型,可以很方便的拿来进行使用. 安装及使用主要参考官方教程:https://keras.io/zh/applications/   https://keras-cn. ...

  3. 51nod-1462: 树据结构

    [传送门:51nod-1462] 简要题意: 给出一棵n个点的树,每个点有两个权值v,t 有Q个操作,有两种操作: 1.将x到根上的路径上的点的v值都加上d 2.将x到根上的路径上的点的t值都加上每个 ...

  4. python类的继承和多态,获取对象信息

    继承 类的继承机制使得子类可以继承父类中定义的方法,拥有父类的财产,比如有一个Animal的类作为父类,它有一个eat方法: class Animal(object): def __init__(se ...

  5. mybatis、spring、mysql、maven实现简单增删查改

    之前写过的mybatis博客作为学习mybatis.spring还是不太合适. 现在找到一个不错的例子,首先将这个完整的mybatis增删查改例子在本地上实现出来,然后再进行学习. 项目结构与运行结果 ...

  6. Android Studio配置GreenDAO 3.2.0和使用方法

    我相信,在平时的开发过程中,大家一定会或多或少地接触到SQLite.然而在使用它时,我们往往需要做许多额外的工作,像编写SQL语句与解析查询结果等.所以,适用于Android ORM框架也就孕育而生了 ...

  7. Linux apache tomcat

    [root@node1 ~]# mv jdk-7u79-linux-x64.tar.gz /usr/local/[root@node1 ~]# cd /usr/local/[root@node1 lo ...

  8. Android dex ,xml 文件反编译方法

    Dex 文件是Android上运行于delvik的java二进制文件,如果你对其中的内容感兴趣而开发人员没有公布源代码,你可以用如下方法反编译dex文件: 1 解压system.img 用xyaffs ...

  9. Pyhton学习——Day31

    # 服务端和接收端的send和reve没有任何关系,只与协议之间有关系# 应用程序产生的数据一定会交给操作系统,并由操作系统往外发送# 发送端什么时候会清空自己的内存?# 收到接收端的ACK响应以后才 ...

  10. Day 03 知识点[python程序运行的方式、变量、注释、内存管理、数据类型]

    执行Python程序的两种方式 第一种:交互式,在cmd中运行 优点:调试程序方便,直接给出结果 缺点:无法保存,关掉cmd窗口数据就消失 第二种:命令行式通过cmd中输入Python3文本 优点:数 ...