Android 使用<layer-list>实现微信聊天输入框

本文介绍如何利用Android中的LayerDrawable实现类似微信聊天输入框的设计。通过叠加不同颜色的矩形层,调整偏移量,最终达到所需视觉效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

LayerDrawable
 <layer-list> 标签可是设置LayerDrawable,一种有层次的Drawable叠加效果,<layer-list> 可以包含多个 <item>标签,
 每个 <item>代表一个Drawable。<item>可以通过left、right、top、bottom设置左右上下的偏移量,<item>可以应用一个图片,也可以是一个shape

  我们来模仿实现微信的聊天输入框:


 先设置绿色的背景:

  <?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="@android:color/holo_green_light" />
          </shape>
      </item>

  </layer-list>


 再叠加一层白色,留出侧面绿色线条的高度:
  <?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="@android:color/holo_green_light" />
          </shape>
      </item>
      <item android:bottom="8dp">
          <shape android:shape="rectangle">
              <solid android:color="@android:color/white" />
          </shape>
      </item>

  </layer-list>


再铺上一层白色,覆盖已经设置好的背景,留出底部和侧面的线条,中间的一层其实就是为了留出两边的绿色线框的高度:
  <?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="@android:color/holo_green_light" />
          </shape>
      </item>
      <item android:bottom="8dp">
          <shape android:shape="rectangle">
              <solid android:color="@android:color/white" />
          </shape>
      </item>
      <item
          android:bottom="1dp"
          android:left="1dp"
          android:right="1dp"
          android:shape="rectangle">
          <shape>
              <solid android:color="@android:color/white" />
          </shape>
      </item>
  </layer-list>

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值