一个封装好的Android仿Ios ActionSheet控件

这次还是带来一个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文件:


actionsheet_out.xml文件:


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





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

dialog_bottom_up.xml:




    

    

dialog_bottom_down.xml:




    

    

dialog_bottom_selector.xml:




    
    

dialog_top_up.xml:




    

    

dialog_top_down.xml:




    

    

dialog_top_selector.xml:




    
    

dialog_white_up.xml:




    

    

dialog_white_down.xml:




    
    

dialog_white_selector.xml:




    
    

layout_white_up.xml:




    
    

layout_white_down.xml:




    
    

layout_white_selector.xml:




    
    

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

ActionDialog.java:

public class ActionSheet extends Dialog {
    private Context context;

    private LinearLayout parentLayout;
    private TextView titleTextView;
    private ArrayList

activity_main.xml:




    

简单的说一下,调用方法之前已经说了,其中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一下,搞定。


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


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








你可能感兴趣的:(自定义控件)