下面是效果圖:
可以看到,當我們輸入文字的時候,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平方單位的...
日加滿給你不一樣的精彩
隨著消費者消費觀念的提公升,越來越多具有品牌價值定位的產品更容易獲得消費者青睞。再加上當前複雜的市場環境,健康綠色理念逐步發展成為主流。多年來,日加滿一直身體力行堅守信念和創辦宗旨,希望透過純淨 愉悅 健康 有效的高品質飲品傳達健康的生活理念,全景展現品牌價值,助力消費者為健康儲值。同時,日加滿緊跟...