这次还是带来一个Android仿Ios风格的控件。Ios里有个控件叫ActionSheet,就是那种从下往上弹出的选项卡,比如下面这个效果:

                                                                 一个封装好的Android仿Ios ActionSheet控件_第1张图片

UI在设计效果图的时候,添加图片、选择性别之类的功能经常会这么设计,ios那边有个ActionSheet可以用,android这边就比较麻烦了(有时候会感叹ios的一些控件确实要比android封装得更彻底)于是就自己封装了一个,名字也叫ActionSheet。控件其实是很久以前写的,现在拿出来跟大家分享一下。话不多说,正片开始。


首先这个控件继承自Dialog,需要先定义一个style和弹入弹出的动画。首先在res目录下新建一个anim文件夹,并在这个文件夹下新建两个动画文件

actionsheet_in.xml和 actionsheet_out,xml,如下:

actionsheet_in.xml文件:

<?xml version="1.0" encoding="utf-8"?>

actionsheet_out.xml文件:

<?xml version="1.0" encoding="utf-8"?>

然后就定义一个style并绑定这两个动画。在styles文件先添加以下内容:

然后是最麻烦的地方,定义背景资源文件,一共12个(没办法,好看是有代价的 >_<)。在drawable目录下创建以下12个资源文件:

dialog_bottom_up.xml:

<?xml version="1.0" encoding="utf-8"?>        
dialog_bottom_down.xml:

<?xml version="1.0" encoding="utf-8"?>        

dialog_bottom_selector.xml:

<?xml version="1.0" encoding="utf-8"?>        

dialog_top_up.xml:

<?xml version="1.0" encoding="utf-8"?>        

dialog_top_down.xml:

<?xml version="1.0" encoding="utf-8"?>        
dialog_top_selector.xml:

<?xml version="1.0" encoding="utf-8"?>        

dialog_white_up.xml:

<?xml version="1.0" encoding="utf-8"?>        

dialog_white_down.xml:

<?xml version="1.0" encoding="utf-8"?>        

dialog_white_selector.xml:

<?xml version="1.0" encoding="utf-8"?>        

layout_white_up.xml:

<?xml version="1.0" encoding="utf-8"?>        

layout_white_down.xml:

<?xml version="1.0" encoding="utf-8"?>        

layout_white_selector.xml:

<?xml version="1.0" encoding="utf-8"?>        

终于搞好了,好麻烦的说。接下来就可以上ActionDialog的本体了,如下:

ActionDialog.java:

public class ActionSheet extends Dialog {    private Context context;    private LinearLayout parentLayout;    private TextView titleTextView;    private ArrayList

activity_main.xml:

<?xml version="1.0" encoding="utf-8"?>    

简单的说一下,调用方法之前已经说了,其中addSheet方法每调用一次就会添加一条选线栏,需要输入选项栏文字,和点击的回调监听,这里监听直接用的是View下的OnClickListener,是不是很亲切?顺带一提,取消按钮是默认存在的,所以务必设置一下addCancelListener,不然点击取消会没反应。

来看一下效果,运行走起! 

                                                                 一个封装好的Android仿Ios ActionSheet控件_第2张图片

控件支持添加标题栏,改变文字大小、颜色什么的,几行代码搞定,如下:

actionSheet=new ActionSheet.DialogBuilder(this)        ...        .setTitle("你觉得以下谁最帅?")        .setCancel("容我三思")        .setTitleTextColor(Color.parseColor("#ff69b4"))        .setCancelTextColor(Color.parseColor("#aaaaaa"))        .setSheetTextColor(Color.parseColor("#1e90ff"))                ...        .create();

再次运行,看一下效果:

                                                                一个封装好的Android仿Ios ActionSheet控件_第3张图片

是不是很简单?更多设置选项在控件源码里都已经注释清楚了,大家可以自己试一试。


总结一下控件的用法就是:new一个DialogBulder,根据需要set一堆东西有几个选项卡就调用几次addSheet,最后create一下,搞定。


最后附上源码地址:点击打开链接


这次的内容就到这里,我们下次再见。








更多相关文章

  1. Android自定义控件解析
  2. Android开发之Android自带的下拉刷新控件SwipeRefreshLayout
  3. Android 自定义Button按钮显示样式(正常、按下、获取焦点)
  4. Android--自定义视图控件(一)(Android Studio)
  5. Android自定义控件的使用
  6. 一个非常好用的自定义圆形控件
  7. ScrollView中若嵌套有滑动的控件(如:WebView,ListView或GridView)
  8. android 开关按钮
  9. Android原生Switch控件滑块thumb卡住问题的解决方法

随机推荐

  1. Android中的基本组件(2)
  2. Android TimePicker
  3. 由浅入深研究Android(3)--浅谈线程的一些东
  4. Android控件之CheckBox(复选框控件)
  5. Android中按钮点击效果显示
  6. android Content provider 组件
  7. Activity的启动模式
  8. 第一行代码读书笔记 Kotlin Android
  9. Android去掉顶部的阴影
  10. Android基础系列-----------Android进程/