Android底部弹出的View,可自定义布局
2014-06-25 14:23
357 查看
这里分享一个Android的非常经典实用而且简单方便的第三方UI控件库:BottomView(小米的米UI也用到了这个)
实现功能:
可以在底部弹出的View里自定义布局;
可以自定义是否可以触摸外部消失;
可以自定义事件;
可以自定义外围背景是否透明;
可以自定义动画;
如果需要的话,可以强制为顶部View显示
BottomView.jar库文件下载地址:http://download.csdn.net/detail/jay100500/7547055
BottomView的Demo下载地址:http://download.csdn.net/detail/jay100500/7547049
用法:
1、下载BottomView.jar库文件,放到Android项目工程里的libs里
2、设置BottomView的Theme:
这2个Theme复制粘贴到你的项目的res/values/styles.xml里即可
[html] view
plaincopy
![](https://oscdn.geek-share.com/Uploads/Images/Content/201611/a7c8e286f463007e2a900848b93dd72c.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201611/9e12f1d3e499fc949c886e7c9e0484f9)
<!--半透明背景Theme-->
<style name="BottomViewTheme_Defalut">
<item name="android:windowFrame">@null</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowIsFloating">true</item>
<item name="android:windowIsTranslucent">false</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowBackground">@color/white</item>
<item name="android:backgroundDimEnabled">true</item>
<item name="android:windowFullscreen">true</item>
</style>
lt;!--透明背景Theme-->
<style name="BottomViewTheme_Transparent">
<item name="android:windowFrame">@null</item>
<item name="android:windowIsFloating">true</item>
<!-- Transparent -->
<item name="android:windowIsTranslucent">false</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowBackground">@color/white</item>
<item name="android:backgroundDimEnabled">false</item>
</style>
另外如果提示
[html] view
plaincopy
![](https://oscdn.geek-share.com/Uploads/Images/Content/201611/a7c8e286f463007e2a900848b93dd72c.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201611/9e12f1d3e499fc949c886e7c9e0484f9)
<item name="android:windowBackground">@color/white</item>
这里的white找不到的话,说明你项目res/values/color.xml没有新建或者没有white颜色这个值,只需在res/values/color.xml里添加
[html] view
plaincopy
![](https://oscdn.geek-share.com/Uploads/Images/Content/201611/a7c8e286f463007e2a900848b93dd72c.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201611/9e12f1d3e499fc949c886e7c9e0484f9)
<color name="white">#ffffff</color>
这个白色值即可。
另外View的动画Theme可选,建议也复制进去,效果好一些,代码如下:
[html] view
plaincopy
![](https://oscdn.geek-share.com/Uploads/Images/Content/201611/a7c8e286f463007e2a900848b93dd72c.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201611/9e12f1d3e499fc949c886e7c9e0484f9)
<style name="BottomToTopAnim" parent="android:Animation">
<item name="@android:windowEnterAnimation">@anim/bottomview_anim_enter</item>
<item name="@android:windowExitAnimation">@anim/bottomview_anim_exit</item>
</style>
res/anim/bottomview_anim_enter.xml
[html] view
plaincopy
![](https://oscdn.geek-share.com/Uploads/Images/Content/201611/a7c8e286f463007e2a900848b93dd72c.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201611/9e12f1d3e499fc949c886e7c9e0484f9)
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >
<translate
android:duration="500"
android:fromYDelta="100%p" />
</set>
res/anim/bottomview_anim_exit.xml
[html] view
plaincopy
![](https://oscdn.geek-share.com/Uploads/Images/Content/201611/a7c8e286f463007e2a900848b93dd72c.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201611/9e12f1d3e499fc949c886e7c9e0484f9)
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >
<translate
android:duration="500"
android:toYDelta="100%p" />
</set>
整体为:
![](https://oscdn.geek-share.com/Uploads/Images/Content/201910/28/f1fc60cb7346344bd262ffd8c2b8b4d3)
2、部分核心使用代码:
[java] view
plaincopy
![](https://oscdn.geek-share.com/Uploads/Images/Content/201611/a7c8e286f463007e2a900848b93dd72c.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201611/9e12f1d3e499fc949c886e7c9e0484f9)
BottomView bottomView = new BottomView(this,
R.style.BottomViewTheme_Defalut, R.layout.bottom_view);
bottomView.setAnimation(R.style.BottomToTopAnim);//设置动画,可选
bottomView.showBottomView(false);
如果想获取这个View的话,调用.getView()方法即可。
效果图之一:(可随意发挥)
实现功能:
可以在底部弹出的View里自定义布局;
可以自定义是否可以触摸外部消失;
可以自定义事件;
可以自定义外围背景是否透明;
可以自定义动画;
如果需要的话,可以强制为顶部View显示
BottomView.jar库文件下载地址:http://download.csdn.net/detail/jay100500/7547055
BottomView的Demo下载地址:http://download.csdn.net/detail/jay100500/7547049
用法:
1、下载BottomView.jar库文件,放到Android项目工程里的libs里
2、设置BottomView的Theme:
这2个Theme复制粘贴到你的项目的res/values/styles.xml里即可
[html] view
plaincopy
![](https://oscdn.geek-share.com/Uploads/Images/Content/201611/a7c8e286f463007e2a900848b93dd72c.png)
<!--半透明背景Theme-->
<style name="BottomViewTheme_Defalut">
<item name="android:windowFrame">@null</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowIsFloating">true</item>
<item name="android:windowIsTranslucent">false</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowBackground">@color/white</item>
<item name="android:backgroundDimEnabled">true</item>
<item name="android:windowFullscreen">true</item>
</style>
lt;!--透明背景Theme-->
<style name="BottomViewTheme_Transparent">
<item name="android:windowFrame">@null</item>
<item name="android:windowIsFloating">true</item>
<!-- Transparent -->
<item name="android:windowIsTranslucent">false</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowBackground">@color/white</item>
<item name="android:backgroundDimEnabled">false</item>
</style>
另外如果提示
[html] view
plaincopy
![](https://oscdn.geek-share.com/Uploads/Images/Content/201611/a7c8e286f463007e2a900848b93dd72c.png)
<item name="android:windowBackground">@color/white</item>
这里的white找不到的话,说明你项目res/values/color.xml没有新建或者没有white颜色这个值,只需在res/values/color.xml里添加
[html] view
plaincopy
![](https://oscdn.geek-share.com/Uploads/Images/Content/201611/a7c8e286f463007e2a900848b93dd72c.png)
<color name="white">#ffffff</color>
这个白色值即可。
另外View的动画Theme可选,建议也复制进去,效果好一些,代码如下:
[html] view
plaincopy
![](https://oscdn.geek-share.com/Uploads/Images/Content/201611/a7c8e286f463007e2a900848b93dd72c.png)
<style name="BottomToTopAnim" parent="android:Animation">
<item name="@android:windowEnterAnimation">@anim/bottomview_anim_enter</item>
<item name="@android:windowExitAnimation">@anim/bottomview_anim_exit</item>
</style>
res/anim/bottomview_anim_enter.xml
[html] view
plaincopy
![](https://oscdn.geek-share.com/Uploads/Images/Content/201611/a7c8e286f463007e2a900848b93dd72c.png)
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >
<translate
android:duration="500"
android:fromYDelta="100%p" />
</set>
res/anim/bottomview_anim_exit.xml
[html] view
plaincopy
![](https://oscdn.geek-share.com/Uploads/Images/Content/201611/a7c8e286f463007e2a900848b93dd72c.png)
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >
<translate
android:duration="500"
android:toYDelta="100%p" />
</set>
整体为:
2、部分核心使用代码:
[java] view
plaincopy
![](https://oscdn.geek-share.com/Uploads/Images/Content/201611/a7c8e286f463007e2a900848b93dd72c.png)
BottomView bottomView = new BottomView(this,
R.style.BottomViewTheme_Defalut, R.layout.bottom_view);
bottomView.setAnimation(R.style.BottomToTopAnim);//设置动画,可选
bottomView.showBottomView(false);
如果想获取这个View的话,调用.getView()方法即可。
效果图之一:(可随意发挥)
相关文章推荐
- [转]Android底部弹出的View,可自定义布局
- Android底部弹出的View,可自定义布局
- Android自定义View_底部弹出Popuwindow
- android 使用TabLayout 自定义View布局作为底部菜单栏
- android之自定义ViewGroup和自动换行的布局的实现
- Android 虚拟键盘弹出把底部view顶上去的解决办法
- android ListView布局之三(使用自定义的Adapter绑定数据,通过contextView.setTag绑定数据)有按钮的ListView
- Android自定义View研究(七)--XML中布局自定义View时View触摸原点问题
- android之自定义ViewGroup和自动换行的布局的实现
- 开源项目之Android ViewBadger(自定义的视图布局)
- android基础(一)View与六大布局之自定义(下)
- android之自定义ViewGroup和自动换行的布局的实现
- android之自定义ViewGroup和自动换行的布局的实现
- 【Android日记】自定义View及其布局问题
- android之自定义ViewGroup和自动换行的布局的实现
- android之自定义ViewGroup和自动换行的布局的实现(支持按钮间隔)
- Android Jamendo开源在线音乐播放器源码分析九 ViewFlipper及自定义布局控件的分析
- android AutoCompleteTextView中文搜索及自定义布局及固定显示条数
- Android开发中自定义View设定到FrameLayout布局中实现多组件显示
- android之自定义ViewGroup和自动换行的布局的实现