Android 給你乙個不一樣的EditText

2021-07-02 17:41:03 字數 1279 閱讀 5915

下面是效果圖:

可以看到,當我們輸入文字的時候,edittext中的hint文字在後面顯示,

這種給使用者更好的提示,是一種還不錯的互動方式。可以使用者登入,註冊等你覺得可以使用的地方。

說了那麼多,下面我們就來看看如何通過自定義edittext來實現這種效果的。

兩個最主要的方法分別是:

1.ontextchanged():監聽edittext文字發生的變化

protected void ontextchanged(charsequence text, int start, int lengthbefore, int lengthafter)

if (textutils.isempty(prestring) != textutils.isempty(gettext().tostring()))

else

prestring = (string) gettext().tostring();

// 記錄下時間

starttime = system.currenttimemillis();

} }

首先判斷是否設定了hint屬性,通過判斷

edittext

是否為空,設定相應的動畫狀態。

2.ondraw()方法進行繪製

if (!issetpadding)

// 設定padding,右邊的padding需要加上hint文字的寬度 

float maxhinty = getbaseline();

// getbaseline():返回這個控制項文字基線的偏移量。如果這個控制項不支援基線對齊,那麼方法返回-1.

之後根據相應的狀態去繪製

switch (status)

else

break;

case animation_out:

if (system.currenttimemillis() - starttime < animoutduration)

else

break;

case animation_none:

if (gettext().tostring().length() == 0)

else

break;

}

最主要的就是計算hintx的值,它的值直接影響hint位置起始繪製的位置

乙個不一樣的感覺

有國外的碼農在論壇裡提問 為了過上更好的生活我兩年前移民到法國後,開始從事前端開發,我的月薪從當時的1.5萬漲到現在的1.9萬。這樣的工資還算可以,但我覺得不夠多。我在想為什麼所有人都能賺大錢?而我作為碼農,實在不知道該如何提高自己的收入,又該怎麼做才能買上房子,讓生活過得更好些呢?原來不單是中國人...

不一樣又不一樣的 木板接水

空地上豎立著n個從左到右排列的木板,它們可以把水擋住,但溢位最邊上木板的水將會流到空地上。已知木板間距都是單位1,現給定每個木板的高度,請求出總共能接住的水量?說明一點,這裡只考慮間距 寬度 和高度,不考慮第三個維度,因此水量是平方單位。木板高度分別是2,1,3,那麼我們可以接住2 2 4平方單位的...

日加滿給你不一樣的精彩

隨著消費者消費觀念的提公升,越來越多具有品牌價值定位的產品更容易獲得消費者青睞。再加上當前複雜的市場環境,健康綠色理念逐步發展成為主流。多年來,日加滿一直身體力行堅守信念和創辦宗旨,希望透過純淨 愉悅 健康 有效的高品質飲品傳達健康的生活理念,全景展現品牌價值,助力消費者為健康儲值。同時,日加滿緊跟...