1. 程式人生 > >EditText自定義邊框背景與動態檢測使用者輸入

EditText自定義邊框背景與動態檢測使用者輸入

一、EditText自定義邊框背景 1.效果演示
2.程式碼實現
(1)res/drawable/shape_edit_normal.xml 功能:編輯框沒獲得焦點時,使用該shape。<shape.../>為根元素的ShapeDrawable資源,主要用於定義一個基本的幾何圖形,如矩形、圓形、線條等。     <solid.../>子元素用於指定填充集合圖形的的顏色;     <corners.../>子元素用於定義幾個圖形的四個角的弧度;     <gradient../>子元素用於指定填充幾何圖形的漸變顏色;     <stroke../>子元素指定幾何圖形邊框
線寬度以及顏色;     <padding../>子元素指定幾何圖形的內邊框 原始碼如下:
<?xml version="1.0" encoding="utf-8"?>   
<shape xmlns:android="http://schemas.android.com/apk/res/android">   
    <solid android:color="#FFFFFF" />   
    <corners android:radius="4dip"/>  
    <stroke    
        android:width="1dip"    
        android:color="#BDC7D8" />   
</shape>
(2)res/drawable/shape_edit_focus.xml 原始碼如下:編輯框獲得焦點時,使用該shape。與上面的shape區別是,<stroke../>元素的顏色屬性值設定不一致。
<?xml version="1.0" encoding="utf-8"?>   
<shape xmlns:android="http://schemas.android.com/apk/res/android">   
    <solid android:color="#FFFFFF" />   
    <corners android:radius="4dip"/>  
    <stroke    
        android:width="1dip"    
        android:color="#728ea3" />   
</shape> 
(3)res/drawable/selector_edit_frame.xml 功能:用於設定檔案編輯框是否有獲取焦點時對應的<shape.../>資源。<selector.../>為根元素的StateListDrawable資源,用於組織多個Drawable物件。當使用StateListDrawable作為目標元件的背景、前景圖片時,StateListDrawable物件所顯示的Drawable物件會隨目標元件狀態的改變自動切換。該元素可以包含多個<item../>子元素,該元素可指定如下屬性:  >android:color或android:drawable:指定顏色或Drawable物件;    >android:state_xxx:指定一個特定狀態;
<?xml version="1.0" encoding="utf-8"?>   
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_window_focused="false" android:drawable="@drawable/shape_edit_normal"/>
    <item android:state_focused="true" android:drawable="@drawable/shape_edit_focus"/>
</selector>
(4)res/layout/main.xml
  ......
 <EditText
       android:background="drawable/selector_edit_frame"
       android:layout_width="match_parent"
       android:layout_weight="wrap_content"/>
  ......
二、動態檢測EditText的輸入     在Android專案開發中,往往我們在實現登入或註冊功能時,需要動態來檢測驗證碼框中的內容來決定是否使能登入/註冊按鈕。Android系統提供了一個TextWatch事件監聽器,其可以實現動態檢測EditText輸入情況。 1.效果演示
2.原始碼實現 功能:動態檢測驗證碼輸入框是否與隨機驗證碼字元匹配,若匹配則使能登入按鈕並改變其背景顏色。
protected void onCreate(Bundle savedInstanceState) {
     Button    loginBtn = (Button)findViewById(R.id.login);
     EditText secCode = (EditText) findViewById(R.id.login_security_code);
     secCode.addTextChangedListener(new TextWatcher() {
   /**
      *文字編輯框內容未改變前回調該方法
    */
       public void beforeTextChanged(CharSequence s, int start, int count,
         int after) {
            loginBtn.setEnabled(false);        //
            loginBtn.setBackgroundColor(Color.parseColor("#DEB887"));
       }     
   /**
      *文字編輯框內容改變時回撥該方法
    */
       public void onTextChanged(CharSequence s, int start, int before,
             int count) {
                    loginBtn.setEnabled(false);
                    loginBtn.setBackgroundColor(Color.parseColor("#DEB887"));
       } 
   /**
      *文字編輯框內容改變後回撥該方法
    */
       public void afterTextChanged(Editable s) {
            if (secCode.getText().toString().equalsIgnoreCase(verityCode)) {
                     loginBtn.setEnabled(true);
                     loginBtn.setBackgroundResource(R.drawable.selector_btn_background);
            }
       }
  });
}    

相關推薦

EditText定義邊框背景動態檢測使用者輸入

一、EditText自定義邊框背景 1.效果演示 2.程式碼實現 (1)res/drawable/shape_edit_normal.xml 功能:編輯框沒獲得焦點時,使用該shape。<s

Android——EditText定義邊框、圓角和其常用屬性總結

看下效果圖: 執行步驟: 首先在/res/layout資料夾下建立custom_et_layout.xml佈局檔案,原始碼如下: <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:

EditText定義下劃線游標顏色

因設計的需求有時我們不得不改變EditText底線顏色,接下來我們就實現EditText改變游標及底線顏色:一.EditText未做任何設定之間效果:xml.layout: <EditText android:hint="EditText未做任何設定" android:

EditText定義邊框、虛線、圓角、形狀的實現

程式碼中說明: <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" >

Android EditText簡單定義邊框樣式

1.去掉全部邊框 android:background="@null"。 2.自定義樣式: shape中如果不通過Android:shape來指定形狀時,預設是矩形,其中solid代表純色,corners代表角,radius越大,圓角越大,stroke代表邊框線。 首先定義

定義UISearchBar背景邊框、左側圖示、刪除圖示、取消按鈕

<span style="background-color: rgb(255, 255, 255); font-family: Arial, Helvetica, sans-serif;">自定義UISearchBar背景、邊框、左側圖示、刪除圖示</sp

定義View分類流程

ces ted function ram 註意 measure fin 利用 href 自定義View分類與流程(進階篇)## 轉載出處: http://www.gcssloop.com/customview/CustomViewProcess/ 自定義View繪制流程

Django中創建定義標簽過慮器

IT choices filters AS value ret urn gist doctype 1.首先在app中創建templatetags目錄(註意必須使用該名字,否則系統找不到自定義的標簽),然後創建python文件common_extrgs.py. common_

Senparc.Weixin微信開發(3) 定義菜單獲取用戶組

開發 分享圖片 獲取 local lock 自定義 oba summary setting 自定義菜單 代碼參考:http://www.cnblogs.com/szw/p/3750517.html 還可以使用他們官網的自定義:https://neuchar.senparc.

定義Counter使用

自定義計數器的使用(記錄敏感單詞) 複製程式碼 1 package counter; 2 3 import java.net.URI; 4 import org.apache.hadoop.conf.Configuration; 5 import org.apache.hadoop.f

Android 定義 spinner (背景、字型顏色)

Android 自定義 spinner (背景、字型顏色) 轉自:http://blog.sina.com.cn/s/blog_3e333c4a010151cj.html 1、準備兩張圖片,並做好9.png     2、在drawable中定義spinner

定義圓形背景RelativeLayout

最近公司專案愛用到圓角背景的RelativeLayout,一般圓角背景的實現思路無非就是兩種,第一種用.xml實現,需要用到.9圖片,防止圖片變形,如果要改變背景顏色的話,不可避免的要找美工妹子作圖,看著我的美工妹子一臉幽怨的小表情,我打算還是用第二種方法吧,就是自已用程式碼繪製一個,要改變角度,要

安卓定義View進階-手勢檢測(GestureDecetor)

Android 手勢檢測,主要是 GestureDetector 相關內容的用法和注意事項,本文依舊屬於事件處理這一體系,部分內容會涉及到之前文章提及過的知識點,如果你沒看過之前的文章,可以到 自定義 View 系列 來檢視這些內容。 在開發 Android 手機應用過程中,可

微信公眾號定義選單介面 wechat.class.php

測試介面 https://mp.weixin.qq.com/debug/cgi-bin/apiinfo?t=index&type=%E8%87%AA%E5%AE%9A%E4%B9%89%E8%8F%9C%E5%8D%95&form=%E8%87%AA%E5%AE%9A

Android 定義型別檔案程式關聯

0x01 功能  實現在其他應用中開啟某個字尾名的檔案 可以直接跳轉到本應用中的某個activity進行處理   0x01 實現    首先建立一個activity ,然後在manifest裡對該activity項編輯,加入    <intent-

Devexpress GridControl定義Header背景顏色

Devexpress提供了很多控制元件,外觀比普通Winform控制元件漂亮很多,裡面很多功能想要學會是需要花費一番功夫的。本文主要介紹GridControl自定義column  Header背景顏色。  在Form窗體上拖放了一個GridControl,嘗試修改列頭 column&nbs

c# 通過json.net中的JsonConverter進行定義序列化反序列化

iter 希望 生成 ade json.net .json implement else col   相信大家在工作中會經常遇見對json進行序列化與反序列化吧,但通常的序列化與反序列化中的json結構與c#中的類模型結構是相對應的,我們是否可以在序列化一個對象時候,讓我們

C# 定義堆疊進行迴文檢測的程式碼

在研發之餘,將做工程過程中比較重要的一些內容備份一下,如下的內容內容是關於C# 自定義堆疊進行迴文檢測的內容,希望對各朋友也有用。 using System; using System.Collections; namespace CStack { class Program { static void

【C語言】typedef(定義資料型別)#define(巨集定義)用法比較

  不管是在C語言還是在C++中,typedef這個詞都不少見,當然出現頻率較高的還是在C程式碼中。typedef和#define有些相似,但更多的是不同,特別是在一些複雜的用法上,就完全不同了。      1.巨集定義(#define)      巨集定義又稱為巨集代換

Python 定義裝飾器函式的可變引數

1.函式的可變引數 參考來源 def f(*args, **kw): *:代指元組,長度不限 **:代表鍵值對,個數不限 def f(*args, **kw): print len(args) print args for i in kw: