您的位置:首页 > 移动开发 > Android开发

Android对于界面底部N个按钮平分屏幕宽度且保持按钮背景图片不变形的解决方案

2013-07-19 17:01 761 查看
我们有时候会用到类似桌面底部那样的导航栏,但是有些背景图片不能做成.9.png格式的,如果我们采用Button的方式来实现,会存在很多问题,比如背景图片被拉伸变形导致界面很难看,而且如果在布局文件中用layout_marginLeft或者layout_marginRight这样的属性,也不容易适配不同屏幕的分辨率,如果采用layout_weight这样的属性导致的问题依然是图片被拉伸,而且各个按钮之间的距离也会很难调。

废话就说这么多,解决方案:使用TextView,使用Textview中的drawableTop属性,这样的设置既不会导致图片被拉伸也不会导致适配分辨率困难。下一给出一段简单的布局文件的代码

首先是主要布局中的导航栏的代码:

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_marginBottom="6dp"
android:gravity="center_horizontal"
android:orientation="horizontal" >

<TextView
android:id="@+id/firstBtn"
style="@style/ButtonBar"
android:drawableTop="@drawable/myfee_selector" />

<TextView
android:id="@+id/secondBtn"
style="@style/ButtonBar"
android:drawableTop="@drawable/mypackage_selector" />

<TextView
android:id="@+id/thirdBtn"
style="@style/ButtonBar"
android:drawableTop="@drawable/mylife_selector" />

<TextView
android:id="@+id/forthBtn"
style="@style/ButtonBar"
android:drawableTop="@drawable/myphone_selector" />

<TextView
android:id="@+id/fifthBtn"
style="@style/ButtonBar"
android:drawableTop="@drawable/mymobile_selector" />
</LinearLayout>

style.xml
<style name="ButtonBar">
<item name="android:clickable">true</item>
<item name="android:layout_width">0dp</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:layout_weight">1</item>
</style>

好了,就这些简单的代码就可以实现一个比较容易适配屏幕的底部导航栏了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息