Android(Java):边框

来源:互联网 发布:mac口红圣诞限量2017 编辑:程序博客网 时间:2024/05/25 19:58
 
<RelativeLayout
                   android:layout_width="fill_parent"
                   android:layout_height="40dp"
                   android:background="@drawable/border_textview"
                   >
------------------------------------------------------------------
drawable/border_textview:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
    <item>
      <shape  android:shape="rectangle">
            <stroke android:width="1dp" android:color="#ff8f8f8f" />
            <solid android:color="#ffffff" />
        </shape>
   </item>
</layer-list>
------------------------------------------------------------------
           <EditText
               android:id="@+id/usernametv"
               android:layout_width="80dp"
               android:bufferType="normal"
               android:singleLine="true"
               android:gravity="center"
               android:layout_gravity="center"
               android:layout_height="40dp"
               android:editable="false"
               android:hint="@string/username"
               android:background="@null"
               android:textSize="17sp"
               />
           <EditText
               android:id="@+id/rusername"
               android:layout_width="200dp"
               android:layout_centerHorizontal="true"
               android:layout_height="40dp"
               android:layout_toRightOf="@id/usernametv"
               android:hint="@string/rusername"
               android:singleLine="true"
               android:textSize="13sp"
               android:background="@null"
               />
               </RelativeLayout>

 

 

在进行Android界面开发的时候,你想给TextView加个边框,找了半天发现没有这个属性,是不是有点蛋疼呢。下面就总结一下有哪些方法能够实现边框效果。

1.嵌套一层,利用内容的margin或者padding的留白加容器的背景来实现边框效果。

其实这个道理很简单,很早的时候那时候我们还用table做html页面布局的时候,我们就是使用cellspacing来实现table的边框的。现在我们也利用同样的想法来实现。

Android下实现边框效果 方案一

Android下实现边框效果 方案一

其中padding产生留白,就形成类似边框的效果。

    

当然内部的容器也是需要有颜色的,如果想实现内部透明的效果则需要将内部View的背景色跟背景的颜色保持一致,这是不太方便的地方。

2.使用9-patch(九宫格)的背景图片来实现边框效果。

做一个有边框的9-patch图片,作为要有边框的View的背景图即可。这样你还可以控制哪边有边框,哪边无边框,这种方法是比较好的一种方法,而且没有多余的View嵌套。另外你还可以实现圆角边框等效果。

Android下实现边框效果 方案二

Android下实现边框效果 方案二

如果你还不了解关于9-patch的内容,请移步。你需要做一个有边框的png图片,使用sdk的tools文件夹下的draw9patch.bat工具,你可以轻松生成9-patch图片。工具用起来很简单。左侧和顶部的线用于扩展重复显示的内容,右侧和底部的线用于控制内容显示的位置。在这里我要先感谢国家,我们现在已经可以自由的访问Android开发者站点。

3.利用shape的stroke来实现边框效果。

当然你可以使用shape中的stroke来实现border的效果。

< xml version="1.0"   encoding="utf-8"   >  

然后你可以引用这个shape作为背景就可以实现边框效果。关于更多关于shape的内容请移步。

最终的效果展示:

当然还有很多其他的变通方法,比如你也可以添加一个view把宽度设置为1dp,作为边框。这个就需要你在实际开发中变通使用了。

本人还是Android开发的小白级人员,如有谬误还请不吝指教。
原创粉丝点击