类似微信的文本输入框

转载自:http://code.qtuba.com/article-17008.html


本文内容比较简单,给大家介绍一下微信的文本输入框是如何实现的,其实那只是个普通的文本框设了一个特殊的背景而已。具体微信怎么实现的,大家可以反编译下,这里介绍下如何实现这个背景。

可以先看下文章末尾的效果图,里面的文本框是不是和微信的比较像啊,下面说下实现思想:

首先,这种效果用.9图我不知道是否可以做出来。如果不用.9图的话,那就只能用drawable来写,这种drawable有点复杂,可以采用LayerList来实现,我的思想如下:

分三层实现,这里假设activity的背景是白色,第一层也(就是最底层)是绿色;第二次是白色,但是距离底部有一段小偏移,目的是为了做出文本框两边的小勾;第三层也是白色,但是它距离底部和左右两边都有一定距离。通过三层配合,即可实现这种效果,巧妙之处大家可以细细体会。xml如下:

[html]  view plain copy
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <layer-list xmlns:android="http://schemas.android.com/apk/res/android" >  
  3.   
  4.     <item>  
  5.         <shape android:shape="rectangle" >  
  6.             <solid android:color="#0ac39e" />  
  7.         </shape>  
  8.     </item>  
  9.   
  10.     <item android:bottom="6dp">  
  11.         <shape android:shape="rectangle" >  
  12.             <solid android:color="#ffffff" />  
  13.         </shape>  
  14.     </item>  
  15.   
  16.     <item  
  17.         android:bottom="1dp"  
  18.         android:left="1dp"  
  19.         android:right="1dp">  
  20.         <shape android:shape="rectangle" >  
  21.             <solid android:color="#ffffff" />  
  22.         </shape>  
  23.     </item>  
  24.   
  25. </layer-list>  
然后,将xml设置为文本框的背景即可。要注意的是,这种方式没法一个xml drawable同时用在各种不同颜色的背景下。


我的修收:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >


    <item>
        <shape android:shape="rectangle" >
            <solid android:color="#4fc1e9" />
        </shape>
    </item>
   <!--  <item android:bottom="10dp">
        <shape android:shape="oval" >
            <solid android:color="#4fc1e9" />
        </shape>
    </item> -->
    <item
        android:bottom="10dp"
        android:left="10dp"
        android:right="10dp"
        android:top="10dp">
        <shape android:shape="rectangle" >
            <solid android:color="@android:color/white" />
            <corners android:radius="5dp"/>
        </shape>
    </item>


</layer-list>


效果如下:


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值