Android 第三方自定义UI控件BottomView

这里分享一个Android的非常经典实用而且简单方便的第三方UI控件库:BottomView(小米的米UI也用到了这个)

实现功能:

可以在底部弹出的View里自定义布局;

可以自定义是否可以触摸外部消失;

可以自定义事件;

可以自定义外围背景是否透明;

可以自定义动画;

如果需要的话,可以强制为顶部View显示

 

相关库文件和Demo在附件里

 

用法:

1、下载BottomView.jar库文件,放到Android项目工程里的libs里

2、设置BottomView的Theme:

这2个Theme复制粘贴到你的项目的res/values/styles.xml里即可

 

[html]  view plain copy 在CODE上查看代码片 派生到我的代码片
 
  1. <!--半透明背景Theme-->  
  2.   <style name="BottomViewTheme_Defalut">  
  3.        <item name="android:windowFrame">@null</item>  
  4.        <item name="android:windowContentOverlay">@null</item>  
  5.        <item name="android:windowIsFloating">true</item>  
  6.        <item name="android:windowIsTranslucent">false</item>  
  7.        <item name="android:windowNoTitle">true</item>  
  8.        <item name="android:windowBackground">@color/white</item>  
  9.        <item name="android:backgroundDimEnabled">true</item>  
  10.        <item name="android:windowFullscreen">true</item>  
  11.    </style>  
  12. lt;!--透明背景Theme-->  
  13.    <style name="BottomViewTheme_Transparent">  
  14.        <item name="android:windowFrame">@null</item>  
  15.        <item name="android:windowIsFloating">true</item>  
  16.        <!-- Transparent -->  
  17.        <item name="android:windowIsTranslucent">false</item>  
  18.        <item name="android:windowContentOverlay">@null</item>  
  19.        <item name="android:windowNoTitle">true</item>  
  20.        <item name="android:windowBackground">@color/white</item>  
  21.        <item name="android:backgroundDimEnabled">false</item>  
  22.    </style>  

另外如果提示

 

 

[html]  view plain copy 在CODE上查看代码片 派生到我的代码片
 
  1. <item name="android:windowBackground">@color/white</item>  

这里的white找不到的话,说明你项目res/values/color.xml没有新建或者没有white颜色这个值,只需在res/values/color.xml里添加

 

 

[html]  view plain copy 在CODE上查看代码片 派生到我的代码片
 
  1.     <color name="white">#ffffff</color>  


这个白色值即可。

 

另外View的动画Theme可选,建议也复制进去,效果好一些,代码如下:

 

[html]  view plain copy 在CODE上查看代码片 派生到我的代码片
 
  1. <style name="BottomToTopAnim" parent="android:Animation">  
  2.        <item name="@android:windowEnterAnimation">@anim/bottomview_anim_enter</item>  
  3.        <item name="@android:windowExitAnimation">@anim/bottomview_anim_exit</item>  
  4.    </style>  


res/anim/bottomview_anim_enter.xml

 

 

[html]  view plain copy 在CODE上查看代码片 派生到我的代码片
 
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <set xmlns:android="http://schemas.android.com/apk/res/android" >  
  3.   
  4.     <translate  
  5.         android:duration="500"  
  6.         android:fromYDelta="100%p" />  
  7.   
  8. </set>  


res/anim/bottomview_anim_exit.xml

 

 

[html]  view plain copy 在CODE上查看代码片 派生到我的代码片
 
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <set xmlns:android="http://schemas.android.com/apk/res/android" >  
  3.   
  4.     <translate  
  5.         android:duration="500"  
  6.         android:toYDelta="100%p" />  
  7.   
  8. </set>  


整体为:

 

 

 

2、部分核心使用代码:

 

[java]  view plain copy 在CODE上查看代码片 派生到我的代码片
 
  1. BottomView bottomView = new BottomView(this,  
  2.                     R.style.BottomViewTheme_Defalut, R.layout.bottom_view);  
  3.             bottomView.setAnimation(R.style.BottomToTopAnim);//设置动画,可选  
  4.             bottomView.showBottomView(false);  

 

如果想获取这个View的话,调用.getView()方法即可。

效果图之一:(可随意发挥)


 

不懂的加我QQ 852041173

 

欢迎加入MtAndroid开发者群:271410559

 

相关库文件和Demo在附件里

 

首发地址:http://www.aplesson.com/?p=400

猜你喜欢

转载自jay100500.iteye.com/blog/2084620