这次还是带来一个Android仿Ios风格的控件。Ios里有个控件叫ActionSheet,就是那种从下往上弹出的选项卡,比如下面这个效果:
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,不然点击取消会没反应。
来看一下效果,运行走起!
控件支持添加标题栏,改变文字大小、颜色什么的,几行代码搞定,如下:
actionSheet=new ActionSheet.DialogBuilder(this) ... .setTitle("你觉得以下谁最帅?") .setCancel("容我三思") .setTitleTextColor(Color.parseColor("#ff69b4")) .setCancelTextColor(Color.parseColor("#aaaaaa")) .setSheetTextColor(Color.parseColor("#1e90ff")) ... .create();
再次运行,看一下效果:
是不是很简单?更多设置选项在控件源码里都已经注释清楚了,大家可以自己试一试。
总结一下控件的用法就是:new一个DialogBulder,根据需要set一堆东西有几个选项卡就调用几次addSheet,最后create一下,搞定。
最后附上源码地址:点击打开链接
这次的内容就到这里,我们下次再见。
- Android自定义控件解析
- Android开发之Android自带的下拉刷新控件SwipeRefreshLayout
- Android 自定义Button按钮显示样式(正常、按下、获取焦点)
- Android--自定义视图控件(一)(Android Studio)
- Android自定义控件的使用
- 一个非常好用的自定义圆形控件
- ScrollView中若嵌套有滑动的控件(如:WebView,ListView或GridView)
- android 开关按钮
- Android原生Switch控件滑块thumb卡住问题的解决方法
随机推荐
-
Android中的基本组件(2)
-
Android TimePicker
-
由浅入深研究Android(3)--浅谈线程的一些东
-
Android控件之CheckBox(复选框控件)
-
Android中按钮点击效果显示
-
android Content provider 组件
-
Activity的启动模式
-
第一行代码读书笔记 Kotlin Android
-
Android去掉顶部的阴影
-
Android基础系列-----------Android进程/