类似微信的文本输入框

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

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

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

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

<?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="#0ac39e" />
        </shape>
    </item>

    <item android:bottom="6dp">
        <shape android:shape="rectangle" >
            <solid android:color="#ffffff" />
        </shape>
    </item>

    <item
        android:bottom="1dp"
        android:left="1dp"
        android:right="1dp">
        <shape android:shape="rectangle" >
            <solid android:color="#ffffff" />
        </shape>
    </item>

</layer-list>

然后,将xml设置为文本框的背景即可。需要注意的是,这种方式没法一个xml drawable同时用在各种不同颜色的背景下。

时间: 2024-10-23 16:16:37

类似微信的文本输入框的相关文章

【转】swift实现ios类似微信输入框跟随键盘弹出的效果

swift实现ios类似微信输入框跟随键盘弹出的效果 为什么要做这个效果 在聊天app,例如微信中,你会注意到一个效果,就是在你点击输入框时输入框会跟随键盘一起向上弹出,当你点击其他地方时,输入框又会跟随键盘一起向下收回,二者完全无缝连接,那么这是怎么实现的呢,也许你会说直接在键盘弹出的时候把输入框也向上移动不就行了?但是我使用这种方法的时候,发现效果十分不理想,会有明显的滞后现象,原因有以下几点: 键盘弹出动画并不是匀速,键盘和输入框的时间曲线不完全一致,运动不同步 各种键盘的高度不一样(比如

怎么让手机浏览器和微信焦点在文本输入框时不自动放大页面

方法一:禁止页面缩放 在head标签中加入以下代码 <meta name="viewport" content="width=device-width, initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0, user-scalable=no"> content的解释 width=device-width //宽度等于设备屏幕宽度 initial-scale=1.0 //初始缩放比例 minimum-

触屏版类似刷新页面文本框获取焦点的同时弹出手机键盘的做法

手机触屏版想要自动弹出键盘要满足的三个条件: 1.文本框获取焦点 2.手触屏该页面的屏幕 3.无延迟 实现实例(类似微信微博): <!DOCTYPE html><html lang="zh-cn"><head>    <meta charset="utf-8">    <meta http-equiv="X-UA-Compatible" content="IE=edge"&

仿支付宝/微信的password输入框效果GridPasswordView解析

仿支付宝/微信的password输入框效果GridPasswordView解析,把一些设置和一些关键的地方列了出来,方便大家使用,可能能够省一部分的时间,也算是自己的积累吧. 1.password框能够输入的类型PasswordType public enum PasswordType { NUMBER, TEXT, TEXTVISIBLE, TEXTWEB; } 这里能够自行加入类型,然后在GridPasswordView中改动 @Override public void setPasswor

【ExtJs】带日期组件的文本输入框、容器与Ext.Msg.alert告警框告警两次

ExtJs的UI组件主要模仿客户端的界面效果,甚至其编程方式都有类似之处. 一.基本目标 比如如下的组件,与VC6中的<[mfc]不同对话框之间互相操控.全局变量与日期控件>(点击打开链接)就有异曲同工之妙. 其基本的思想也是先设置两个日期组件与按钮组件,然后,在点击按钮,就触发事件. 二.制作过程 首先,这个网页全程运用ExtJs编程,因此基本的HTML布局,处理引入ExtJS资源之外什么都没有.甚至可以把下面的ExtJs脚本完全写在一个Js里面. <!DOCTYPE HTML PUB

小功能——类似微信里,评论内容里面,点击每个人的用户名进入个人主页

项目里的朋友圈页面,每幅图片的评论内容里面,有不同的用户进行评论,起初想法是点击用户名直接进行回复,后来看微信都是点击评论内容进行回复评论的发起人,这个好做,把这个textview绑定一个监听器就ok了 后来再一想,如果要实现类似微信点击用户名就进入用户的主页,怎么让用户名可以点击呢? 现在父布局下面在new一个水平布局的linearlayout,然后根据把每个用户.包括评论内容都设置进textview里面,然后通过linearlayout的addview()方法,把这些textview添加进去

android 实现类似微信缓存和即时更新好友头像

引言 使用微信时我们会发现,首次进入微信的好友列表时,会加载好友头像,但是再次进入时,就不用重新加载了,而且其他页面都不用重新加载,说明微信的好友头像是缓存在本地的,然后好友修改头像后,又会及时的更新,这个功能是如何实现的呢,我们来分析一下 分析 关于头像缓存的实现 头像是网络图片,而且数据量较大,如果用我们常用的SharedPreferences将头像以Bitmap的形式存储,势必会造成OOM,这个方法是行不通的,我们存储的只能是图片的地址,但是如果只存储地址的话,要转化成图片,还是要通过网络

iOS自定义键盘和系统键盘切换且文本输入框一直获得焦点

UITextView用来进行文本输入.方法becomeFirstResponder和resignFirstResponder可以用来进行弹出系统键盘和收下系统键盘. 弹出系统键盘,文本输入框获得焦点.收下系统键盘,文本输入框失去焦点.那么,问题来了. 某个条件下,如点击界面上的某个按钮,展示自定义键盘.再次点击,切换到系统键盘.先收下系统键盘,再展示自定义键盘.比如移动自定义键盘View的Frame.Y.但这时因为收下系统键盘,本文输入框失去焦点.虽然展示了自定义键盘.但用户体验很不好.光标没有

iOS开发&gt;学无止境 - AKTabBarController:类似微信的第三方库

自从有了评论之后,就可以很方便的和大家交流.以前都是我一个人默默的发文章,看不出大家对文章的看法.评论开通之后,就可以很快速的获取大家对文章的看法. 有人会指出文章里有错误的地方,真的很感激他们,非常的认真:有人会对文章说出自己的见解,加深自己的印象,同时,也能帮助到其他的朋友:有人也会在评论里,提出一些问题,但是鉴于评论的字数限制,只能简单的回答一下. 在昨天的文章评论里面,有一个朋友提出了一个问题,关于微信导航栏的. 问题分析和解答 问: 自定义导航栏怎么写?就像微信那样,tabBar的四个