如果能让用户输入很多内容,并且是换行的形式,那可能就可考虑不让输入框背景失真的方法,尤其是圆角的图。
以前一直用的方法是用Android自带的9-patch工具对背景图进行修改,这样可以确保角落的圆角不失真。但是这次的工程中,设计的图是左右的边框是虚线。在使用9-patch后,左右两边的线明显失真。今天在同事的交流中,找到另一种方法,试了一下,觉得还是可行的。也记录一下,以后可以用得到。
把一个输入框的背景分成上,中,下三部分,中间那个部分的图可以尽量地小,但要把基本的图片元素显示包含进来。三者可以用LinearLayout拼接在一起。接下来要做的就是重点了,步骤如下:
1.在drawable包下,新建一个XML文件,例,命名为repeat_bg.xml,写的内容为:
<?xml version="1.0" encoding="utf-8"?>
<bitmap xmlns:android="http://schemas.android.com/apk/res/android" android:src="@drawable/bg"
android:tileMode="repeat" />
这个bg文件就是中间部分的背景图。
2.在布局文件中像使用一般地图片一样使用这个repeat_bg文件。即写为:
<LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@drawable/repeat_bg"> </LinearLayout>
在实际应用中,就是把它用到中间部分的布局背景里。
但是第二种方法可能会存在一点问题,可能文字的最后一行只需要一半的背景图空间,这样也会造成最后一图片的失真。其次,还要跟UI合作好,这样才能达到目的。
不过最好避免失真的办法,还是不去做类似于虚线的边框,直接用实线的边框,就可以用9-patch实现对失真的防止了。