Androidui Open Source Component library Bottomview Third-party Custom UI controls
Last Update:2015-06-15
Source: Internet
Author: User
<span id="Label3"></p><p><p></p></p><p><p></p></p> <ul class="Content"> <ul class="Content"> <li id="ArticleBox"><p><p>Here's a very classic, practical and Easy-to-use Third-party UI Control Library for Android: Bottomview (this is also used by Xiaomi's Rice Ui)</p></p><p><p>Implementation Features:</p></p><p><p>You can customize the layout in the view that pops up at the bottom;</p></p><p><p>You can customize whether you can touch the outside to disappear;</p></p><p><p>Custom events can be customized;</p></p><p><p>You can customize whether the peripheral background is transparent or not;</p></p><p><p>You can customize the animation;</p></p><p><p>If necessary, you can force the display of the top view</p></p><p><p>Bottomview.jar Library File: http://download.csdn.net/detail/jay100500/7547055</p></p><p><p>Bottomview's demo:http://download.csdn.net/detail/jay100500/7547049</p></p><pre><span style="color: #0000ff;"><span style="color: #0000ff;"></span> package</span><span style="color: #000000;"><span style="color: #000000;">com.tandong.bottomview.view;</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">Import</span></span><span style="color: #000000;"><span style="color: #000000;">android.app.Dialog;</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">Import</span></span><span style="color: #000000;"><span style="color: #000000;">android.content.Context;</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">Import</span></span><span style="color: #000000;"><span style="color: #000000;">android.view.Display;</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">Import</span></span><span style="color: #000000;"><span style="color: #000000;">android.view.View;</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">Import</span></span><span style="color: #000000;"><span style="color: #000000;">android.view.Window;</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">Import</span></span><span style="color: #000000;"><span style="color: #000000;">android.view.WindowManager;</span></span><span style="color: #0000ff;"><span style="color: #0000ff;"></span> public</span> <span style="color: #0000ff;"><span style="color: #0000ff;">class</span></span><span style="color: #000000;"><span style="color: #000000;">Bottomview {</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">Private</span></span><span style="color: #000000;"><span style="color: #000000;">View convertview; </span></span><span style="color: #0000ff;"><span style="color: #0000ff;">Private</span></span><span style="color: #000000;"><span style="color: #000000;">Context context; </span></span><span style="color: #0000ff;"><span style="color: #0000ff;">Private</span></span> <span style="color: #0000ff;"><span style="color: #0000ff;">int</span></span><span style="color: #000000;"><span style="color: #000000;">theme; </span></span><span style="color: #0000ff;"><span style="color: #0000ff;">Private</span></span><span style="color: #000000;"><span style="color: #000000;">Dialog bv; </span></span><span style="color: #0000ff;"><span style="color: #0000ff;">Private</span></span> <span style="color: #0000ff;"><span style="color: #0000ff;">int</span></span><span style="color: #000000;"><span style="color: #000000;">animationstyle; </span></span><span style="color: #0000ff;"><span style="color: #0000ff;">Private</span></span> <span style="color: #0000ff;"><span style="color: #0000ff;">Boolean</span></span>Istop =<span style="color: #0000ff;"><span style="color: #0000ff;">false</span></span><span style="color: #000000;"><span style="color: #000000;">; </span></span><span style="color: #0000ff;"><span style="color: #0000ff;"></span> public</span>Bottomview (Context c,<span style="color: #0000ff;"><span style="color: #0000ff;">int</span></span><span style="color: #000000;"><span style="color: #000000;">theme, View Convertview) { </span></span><span style="color: #0000ff;"><span style="color: #0000ff;"></span> this</span>. Theme =<span style="color: #000000;"><span style="color: #000000;">theme; </span></span><span style="color: #0000ff;"><span style="color: #0000ff;"></span> this</span>. Context =<span style="color: #000000;"><span style="color: #000000;">c; </span></span><span style="color: #0000ff;"><span style="color: #0000ff;"></span> this</span>. Convertview =<span style="color: #000000;"><span style="color: #000000;">convertview; } </span></span><span style="color: #0000ff;"><span style="color: #0000ff;"></span> public</span>Bottomview (Context c,<span style="color: #0000ff;"><span style="color: #0000ff;">int</span></span>Theme<span style="color: #0000ff;"><span style="color: #0000ff;">int</span></span><span style="color: #000000;"><span style="color: #000000;">Resource) { </span></span><span style="color: #0000ff;"><span style="color: #0000ff;"></span> this</span>. Theme =<span style="color: #000000;"><span style="color: #000000;">theme; </span></span><span style="color: #0000ff;"><span style="color: #0000ff;"></span> this</span>. Context =<span style="color: #000000;"><span style="color: #000000;">c; </span></span><span style="color: #0000ff;"><span style="color: #0000ff;"></span> this</span>. Convertview = View.inflate (c, resource,<span style="color: #0000ff;"><span style="color: #0000ff;">NULL</span></span><span style="color: #000000;"><span style="color: #000000;">); } </span></span><span style="color: #0000ff;"><span style="color: #0000ff;"></span> public</span> <span style="color: #0000ff;"><span style="color: #0000ff;">void</span></span>Showbottomview (<span style="color: #0000ff;"><span style="color: #0000ff;">Boolean</span></span><span style="color: #000000;"><span style="color: #000000;">Canceledontouchoutside) { </span></span><span style="color: #0000ff;"><span style="color: #0000ff;">if</span></span>(<span style="color: #0000ff;"><span style="color: #0000ff;"></span> this</span>. Theme = = 0<span style="color: #000000;"><span style="color: #000000;">) </span></span><span style="color: #0000ff;"><span style="color: #0000ff;"></span> this</span>. BV =<span style="color: #0000ff;"><span style="color: #0000ff;">New</span></span>Dialog (<span style="color: #0000ff;"><span style="color: #0000ff;"></span> this</span><span style="color: #000000;"><span style="color: #000000;">. context); </span></span><span style="color: #0000ff;"><span style="color: #0000ff;">Else</span></span> <span style="color: #0000ff;"><span style="color: #0000ff;"></span> this</span>. BV =<span style="color: #0000ff;"><span style="color: #0000ff;">New</span></span>Dialog (<span style="color: #0000ff;"><span style="color: #0000ff;"></span> this</span>. context,<span style="color: #0000ff;"><span style="color: #0000ff;"></span> this</span><span style="color: #000000;"><span style="color: #000000;">. theme); </span></span><span style="color: #0000ff;"><span style="color: #0000ff;"></span> this</span><span style="color: #000000;"><span style="color: #000000;">. Bv.setcanceledontouchoutside (canceledontouchoutside); </span></span><span style="color: #0000ff;"><span style="color: #0000ff;"></span> this</span>. Bv.getwindow (). Requestfeature (1<span style="color: #000000;"><span style="color: #000000;">); </span></span><span style="color: #0000ff;"><span style="color: #0000ff;"></span> this</span>. Bv.setcontentview (<span style="color: #0000ff;"><span style="color: #0000ff;"></span> this</span><span style="color: #000000;"><span style="color: #000000;">. convertview); Window WM</span></span>=<span style="color: #0000ff;"><span style="color: #0000ff;"></span> this</span><span style="color: #000000;"><span style="color: #000000;">. Bv.getwindow (); WindowManager m</span></span>=<span style="color: #000000;"><span style="color: #000000;">Wm.getwindowmanager (); Display D</span></span>=<span style="color: #000000;"><span style="color: #000000;">M.getdefaultdisplay (); Windowmanager.layoutparams P</span></span>=<span style="color: #000000;"><span style="color: #000000;">wm.getattributes (); P.width</span></span>= (d.getwidth () * 1<span style="color: #000000;"><span style="color: #000000;">); </span></span><span style="color: #0000ff;"><span style="color: #0000ff;">if</span></span>(<span style="color: #0000ff;"><span style="color: #0000ff;"></span> this</span><span style="color: #000000;"><span style="color: #000000;">. ISTOP) p.gravity</span></span>= 48<span style="color: #000000;"><span style="color: #000000;">; </span></span><span style="color: #0000ff;"><span style="color: #0000ff;">Else</span></span><span style="color: #000000;"><span style="color: #000000;">p.gravity</span></span>= 80<span style="color: #000000;"><span style="color: #000000;">; </span></span><span style="color: #0000ff;"><span style="color: #0000ff;">if</span></span>(<span style="color: #0000ff;"><span style="color: #0000ff;"></span> this</span>. animationstyle! = 0<span style="color: #000000;"><span style="color: #000000;">) {wm.setwindowanimations (</span></span><span style="color: #0000ff;"><span style="color: #0000ff;"></span> this</span><span style="color: #000000;"><span style="color: #000000;">. animationstyle); } wm.setattributes (p); </span></span><span style="color: #0000ff;"><span style="color: #0000ff;"></span> this</span><span style="color: #000000;"><span style="color: #000000;">. Bv.show (); } </span></span><span style="color: #0000ff;"><span style="color: #0000ff;"></span> public</span> <span style="color: #0000ff;"><span style="color: #0000ff;">void</span></span><span style="color: #000000;"><span style="color: #000000;">settopifnecessary () {</span></span><span style="color: #0000ff;"><span style="color: #0000ff;"></span> this</span>. Istop =<span style="color: #0000ff;"><span style="color: #0000ff;">true</span></span><span style="color: #000000;"><span style="color: #000000;">; } </span></span><span style="color: #0000ff;"><span style="color: #0000ff;"></span> public</span> <span style="color: #0000ff;"><span style="color: #0000ff;">void</span></span>Setanimation (<span style="color: #0000ff;"><span style="color: #0000ff;">int</span></span><span style="color: #000000;"><span style="color: #000000;">Animationstyle) { </span></span><span style="color: #0000ff;"><span style="color: #0000ff;"></span> this</span>. Animationstyle =<span style="color: #000000;"><span style="color: #000000;">animationstyle; } </span></span><span style="color: #0000ff;"><span style="color: #0000ff;"></span> public</span><span style="color: #000000;"><span style="color: #000000;">View getView () {</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">return</span></span> <span style="color: #0000ff;"><span style="color: #0000ff;"></span> this</span><span style="color: #000000;"><span style="color: #000000;">. convertview; } </span></span><span style="color: #0000ff;"><span style="color: #0000ff;"></span> public</span> <span style="color: #0000ff;"><span style="color: #0000ff;">void</span></span><span style="color: #000000;"><span style="color: #000000;">Dismissbottomview () {</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">if</span></span>(<span style="color: #0000ff;"><span style="color: #0000ff;"></span> this</span>. bv! =<span style="color: #0000ff;"><span style="color: #0000ff;">NULL</span></span><span style="color: #000000;"><span style="color: #000000;">) </span></span><span style="color: #0000ff;"><span style="color: #0000ff;"></span> this</span><span style="color: #000000;"><span style="color: #000000;">. Bv.dismiss (); }}</span></span></pre><p><p></p></p><p><p>Usage:</p></p><p><p>1. Download the Bottomview.jar library file and put it in the Libs of Android project</p></p><p><p>2, Set the Bottomview theme:</p></p><p><p>Copy and paste the 2 theme into your Project's res/values/styles.xml</p></p><p><p></p></p>View sourceprint?<code class="number"><code class="number">01.</code></code><span class="content"><span class="content"><span class="block"><code class="plain"><!--半透明背景Theme--></code></span></span></span><code class="number"><code class="number">02.</code></code><span class="content"><span class="content"><span class="block"><code class="plain"><style name=</code><code class="string">"BottomViewTheme_Defalut"</code><code class="plain">></code></span></span></span><code class="number"><code class="number">03.</code></code><span class="content"><span class="content"><span class="block"><code class="plain"><item name=</code><code class="string">"android:windowFrame"</code><code class="plain">></code><code class="color1">@null</code><code class="plain"></item></code></span></span></span><code class="number"><code class="number">04.</code></code><span class="content"><span class="content"><span class="block"><code class="plain"><item name=</code><code class="string">"android:windowContentOverlay"</code><code class="plain">></code><code class="color1">@null</code><code class="plain"></item></code></span></span></span><code class="number"><code class="number">05.</code></code><span class="content"><span class="content"><span class="block"><code class="plain"><item name=</code><code class="string">"android:windowIsFloating"</code><code class="plain">></code><code class="keyword">true</code><code class="plain"></item></code></span></span></span><code class="number"><code class="number">06.</code></code><span class="content"><span class="content"><span class="block"><code class="plain"><item name=</code><code class="string">"android:windowIsTranslucent"</code><code class="plain">></code><code class="keyword">false</code><code class="plain"></item></code></span></span></span><code class="number"><code class="number">07.</code></code><span class="content"><span class="content"><span class="block"><code class="plain"><item name=</code><code class="string">"android:windowNoTitle"</code><code class="plain">></code><code class="keyword">true</code><code class="plain"></item></code></span></span></span><code class="number"><code class="number">08.</code></code><span class="content"><span class="content"><span class="block"><code class="plain"><item name=</code><code class="string">"android:windowBackground"</code><code class="plain">></code><code class="color1">@color</code><code class="plain">/white</item></code></span></span></span><code class="number"><code class="number">09.</code></code><span class="content"><span class="content"><span class="block"><code class="plain"><item name=</code><code class="string">"android:backgroundDimEnabled"</code><code class="plain">></code><code class="keyword">true</code><code class="plain"></item></code></span></span></span><code class="number"><code class="number">10.</code></code><span class="content"><span class="content"><span class="block"><code class="plain"><item name=</code><code class="string">"android:windowFullscreen"</code><code class="plain">></code><code class="keyword">true</code><code class="plain"></item></code></span></span></span><code class="number"><code class="number">11.</code></code><span class="content"><span class="content"><span class="block"><code class="plain"></style></code></span></span></span><code class="number"><code class="number">12.</code></code><span class="content"><span class="content"><span class="block"><code class="plain"><!--透明背景Theme--></code></span></span></span><code class="number"><code class="number">13.</code></code><span class="content"><span class="content"><span class="block"><code class="plain"><style name=</code><code class="string">"BottomViewTheme_Transparent"</code><code class="plain">></code></span></span></span><code class="number"><code class="number">14.</code></code><span class="content"><span class="content"><span class="block"><code class="plain"><item name=</code><code class="string">"android:windowFrame"</code><code class="plain">></code><code class="color1">@null</code><code class="plain"></item></code></span></span></span><code class="number"><code class="number">15.</code></code><span class="content"><span class="content"><span class="block"><code class="plain"><item name=</code><code class="string">"android:windowIsFloating"</code><code class="plain">></code><code class="keyword">true</code><code class="plain"></item></code></span></span></span><code class="number"><code class="number">16.</code></code><span class="content"><span class="content"><span class="block"><code class="plain"><!-- Transparent --></code></span></span></span><code class="number"><code class="number">17.</code></code><span class="content"><span class="content"><span class="block"><code class="plain"><item name=</code><code class="string">"android:windowIsTranslucent"</code><code class="plain">></code><code class="keyword">false</code><code class="plain"></item></code></span></span></span><code class="number"><code class="number">18.</code></code><span class="content"><span class="content"><span class="block"><code class="plain"><item name=</code><code class="string">"android:windowContentOverlay"</code><code class="plain">></code><code class="color1">@null</code><code class="plain"></item></code></span></span></span><code class="number"><code class="number">19.</code></code><span class="content"><span class="content"><span class="block"><code class="plain"><item name=</code><code class="string">"android:windowNoTitle"</code><code class="plain">></code><code class="keyword">true</code><code class="plain"></item></code></span></span></span><code class="number"><code class="number">20.</code></code><span class="content"><span class="content"><span class="block"><code class="plain"><item name=</code><code class="string">"android:windowBackground"</code><code class="plain">></code><code class="color1">@color</code><code class="plain">/white</item></code></span></span></span><code class="number"><code class="number">21.</code></code><span class="content"><span class="content"><span class="block"><code class="plain"><item name=</code><code class="string">"android:backgroundDimEnabled"</code><code class="plain">></code><code class="keyword">false</code><code class="plain"></item></code></span></span></span><code class="number"><code class="number">22.</code></code><span class="content"><span class="content"><span class="block"><code class="plain"></style></code></span></span></span>Also if prompted<p><p></p></p><p><p></p></p>View sourceprint?<code class="number"><code class="number">1.</code></code><span class="content"><span class="content"><span class="block"><code class="plain"><item name=</code><code class="string">"android:windowBackground"</code><code class="plain">></code><code class="color1">@color</code><code class="plain">/white</item></code></span></span></span>If White is not found here, your project Res/values/color.xml no new or white color value, just add it in Res/values/color.xml<p><p></p></p><p><p></p></p>View sourceprint?<code class="number"><code class="number">1.</code></code><span class="content"><span class="content"><span class="block"><code class="plain"><color name=</code><code class="string">"white"</code><code class="plain">>#ffffff</color></code></span></span></span><br>This white value can Be.<p><p></p></p><p><p>In addition, the View animation theme optional, The proposal also copied in, the effect is better, the code is as Follows:</p></p><p><p></p></p>View sourceprint?<code class="number"><code class="number">1.</code></code><span class="content"><span class="content"><span class="block"><code class="plain"><style name=</code><code class="string">"BottomToTopAnim"</code> <code class="plain">parent=</code><code class="string">"android:Animation"</code><code class="plain">></code></span></span></span><code class="number"><code class="number">2.</code></code><span class="content"><span class="content"><span class="block"><code class="plain"><item name=</code><code class="string">"@android:windowEnterAnimation"</code><code class="plain">></code><code class="color1">@anim</code><code class="plain">/bottomview_anim_enter</item></code></span></span></span><code class="number"><code class="number">3.</code></code><span class="content"><span class="content"><span class="block"><code class="plain"><item name=</code><code class="string">"@android:windowExitAnimation"</code><code class="plain">></code><code class="color1">@anim</code><code class="plain">/bottomview_anim_exit</item></code></span></span></span><code class="number"><code class="number">4.</code></code><span class="content"><span class="content"><span class="block"><code class="plain"></style></code></span></span></span><br>Res/anim/bottomview_anim_enter.xml<p><p></p></p><p><p></p></p>View sourceprint?<code class="number"><code class="number">1.</code></code><span class="content"><span class="content"><span class="block"><code class="plain"><?xml version=</code><code class="string">"1.0"</code> <code class="plain">encoding=</code><code class="string">"utf-8"</code><code class="plain">?></code></span></span></span><code class="number"><code class="number">2.</code></code><span class="content"><span class="content"><span class="block"><code class="plain"><set xmlns:android=</code><code class="string">"http://schemas.android.com/apk/res/android"</code> <code class="plain">></code></span></span></span><code class="number"><code class="number">3.</code></code><span class="content"><span class="content"><span class="block"> </span></span></span><code class="number"><code class="number">4.</code></code><span class="content"><span class="content"><span class="block"><code class="plain"><translate</code></span></span></span><code class="number"><code class="number">5.</code></code><span class="content"><span class="content"><span class="block"><code class="plain">android:duration=</code><code class="string">"500"</code></span></span></span><code class="number"><code class="number">6.</code></code><span class="content"><span class="content"><span class="block"><code class="plain">android:fromYDelta=</code><code class="string">"100%p"</code> <code class="plain">/></code></span></span></span><code class="number"><code class="number">7.</code></code><span class="content"><span class="content"><span class="block"> </span></span></span><code class="number"><code class="number">8.</code></code><span class="content"><span class="content"><span class="block"><code class="plain"></set></code></span></span></span><br>Res/anim/bottomview_anim_exit.xml<p><p></p></p><p><p></p></p>View sourceprint?<code class="number"><code class="number">1.</code></code><span class="content"><span class="content"><span class="block"><code class="plain"><?xml version=</code><code class="string">"1.0"</code> <code class="plain">encoding=</code><code class="string">"utf-8"</code><code class="plain">?></code></span></span></span><code class="number"><code class="number">2.</code></code><span class="content"><span class="content"><span class="block"><code class="plain"><set xmlns:android=</code><code class="string">"http://schemas.android.com/apk/res/android"</code> <code class="plain">></code></span></span></span><code class="number"><code class="number">3.</code></code><span class="content"><span class="content"><span class="block"> </span></span></span><code class="number"><code class="number">4.</code></code><span class="content"><span class="content"><span class="block"><code class="plain"><translate</code></span></span></span><code class="number"><code class="number">5.</code></code><span class="content"><span class="content"><span class="block"><code class="plain">android:duration=</code><code class="string">"500"</code></span></span></span><code class="number"><code class="number">6.</code></code><span class="content"><span class="content"><span class="block"><code class="plain">android:toYDelta=</code><code class="string">"100%p"</code> <code class="plain">/></code></span></span></span><code class="number"><code class="number">7.</code></code><span class="content"><span class="content"><span class="block"> </span></span></span><code class="number"><code class="number">8.</code></code><span class="content"><span class="content"><span class="block"><code class="plain"></set></code></span></span></span><br>The whole is:<p><p></p></p><p><p></p></p><p><p>2, some core use code:</p></p><p><p></p></p>View sourceprint?<code class="number"><code class="number">1.</code></code><span class="content"><span class="content"><span class="block"><code class="plain">BottomView bottomView = </code><code class="keyword">new</code> <code class="plain">BottomView(</code><code class="keyword">this</code><code class="plain">,</code></span></span></span><code class="number"><code class="number">2.</code></code><span class="content"><span class="content"><span class="block"><code class="plain">R.style.BottomViewTheme_Defalut, R.layout.bottom_view);</code></span></span></span><code class="number"><code class="number">3.</code></code><span class="content"><span class="content"><span class="block"><code class="plain">bottomView.setAnimation(R.style.BottomToTopAnim);</code><code class="comments">//设置动画,可选</code></span></span></span><code class="number"><code class="number">4.</code></code><span class="content"><span class="content"><span class="block"><code class="plain">bottomView.showBottomView(</code><code class="keyword">false</code><code class="plain">);</code></span></span></span><p><p></p></p><p><p>If you want to get this view, call The. getView () method.</p></p>One: (free to Play)<p><p><br></p></p><p><p>Do not understand the add my QQ 852041173</p></p><p><p>Welcome to join Mtandroid Developer QQ Group: 271410559</p></p><p><p></p></p><p><p>Baidu Network Disk Backup:</p></p><p><p></p></p><p><p>Bottomview.jar Library File: Http://pan.baidu.com/s/1mg7eseG</p></p><p><p>Bottomview's demo:http://pan.baidu.com/s/1hqkrm8s</p></p><p><p>Starting Address: http://www.aplesson.com/?p=400</p></p></li> </ul> </ul><p><p>Androidui Open Source Component library Bottomview Third-party Custom UI controls</p></p></span>