|
- --编辑框封装+ G# Y, J" v2 ~$ M2 L# e! j
- --Pretend
0 G# _7 P/ [; L4 y2 l* f - require "import"8 |" ?! e) [) l9 Y
- import "android.app.*"
4 w4 z4 ^6 U/ O4 O$ \& j: z. s - import "android.os.*"
( j# P8 j+ q) U- b. z5 s - import "android.widget.*"
9 Z& ^, E' y) ^* W - import "android.view.*"! {8 e0 R. e- a: k9 Q5 r) g
- 6 _+ y1 V5 |# j% ]- F8 ]
- function PretendEditText(t)--编辑框封装
# h& t. b# u5 Q0 \8 o# o5 j/ Z6 H - local lay=loadlayout{FrameLayout,8 u7 C; R& {; e4 X @
- {0 K/ z1 k8 G% S* o2 V2 c# o- s
- RelativeLayout;
; {5 O2 X6 Q1 g4 N1 l8 ^; U9 c - layout_width="fill";4 ]$ ?% Y% O3 F% \: W6 O6 j' ^
- focusableInTouchMode=true;
1 V) i' T. h4 e" F% H2 n/ i - focusable=true;
& p( l8 e3 C/ a1 z - layout_height="fill";
6 n) O, X+ F4 I# _. Q - {
) q( n' d% E0 G0 s- e+ l - EditText;1 F. |1 M0 V$ U
- layout_height="wrap";: M3 p& C |8 F( Z
- layout_marginTop="56";
4 b0 b. P% _ Z7 F' e" A" H* c - layout_centerHorizontal="true";+ I: o' C9 S7 G+ c5 x
- textColor=t.字体颜色 or "#000000";; w- L: K `1 V% s
- textSize="14dp";
4 Q* D; z, i) k1 N - background="0";
0 k$ u& n/ O) o( q7 ^+ z - layout_marginLeft="16dp";
, X1 M, k! R# G4 |8 m# X3 u% X - layout_width="fill";7 h- q$ m' G5 x J" H( S, D, j
- layout_marginRight="16dp";
# T0 t/ h+ ?; R& y) V - id=t.id;8 I; i# s8 D# T- e8 ~
- password=t.password;
# `; U5 P7 S" y$ ~4 F+ Y - singleLine="true";4 G7 m U% b1 @" o5 J' I
- };; r& _& |6 e$ X3 Y. H- b
, g$ Q2 Q1 \1 Q0 h2 A- 1 c8 [, Q8 x2 }/ m4 v! x$ q% o
- {
% g# K7 f4 I+ F6 p$ q - TextView;
! b% M/ o f" y: o" p; A3 W - layout_height="2dp";" Q( c( F+ b/ [
- layout_alignBottom=t.id;
! p! ]# A9 P4 R) u- m2 Q - layout_centerHorizontal="true";
8 s% N. Y; _9 Z/ [/ W+ N - background=t.线的颜色1 or "#009688";
5 W+ s( [! Q0 h! l1 x& q; S3 T - layout_marginLeft="16dp";
( e3 N, \, j; |& P8 Q - layout_width="fill";5 H7 f( Q! o( ^0 N! R% q" ^. a
- layout_marginRight="16dp";) R1 D& Z/ c$ H) j) ^$ K
- alpha="1";
) ^8 h' z6 ]& F - id=t.id2;0 d, ?: U) |' Q6 N" t
- };
! C! V; v3 m/ b4 P# j
4 I. [+ l9 A) E% I* i- {8 ]' `7 ^, V$ \
- TextView;
) J( z0 M7 u) u" q9 H - layout_height="1dp";9 H' v* \4 x/ j4 Y
- layout_alignBottom=t.id;; C; D* V+ m9 }# H) D7 W7 k! W
- layout_centerHorizontal="true";
9 ~; f/ b: r5 ~8 P Q( N - background=t.线的颜色2 or "#000000";. P& O+ ?. a- E
- layout_marginLeft="16dp";/ v a' m0 I: @, c' O v
- layout_width="fill";
* r0 I) P! H% `! K - layout_marginRight="16dp";) `( I- D& n4 V k6 N/ K' _
- alpha="0.2";! g- m7 a* X1 _
- id=t.id4; E; `# z" n3 P9 ?
- };
$ m; G1 t w* C. l - ' U- ~% F( p P$ _) [
- {
- x; H- m6 k2 R5 ~2 ?4 B- ]: K - TextView;; t8 Q2 } T! }0 s* o6 c( H1 \- ?
- id=t.id3;# k) y w/ A7 t" Y, U
- layout_marginLeft="24dp";) a9 U* V+ T* ]4 m2 G3 f3 ^
- text=t.hint or "Pretend封装";0 v6 D& F) K$ i9 c( Z' }6 N/ ^
- layout_alignBaseline=t.id;0 S' f3 @( i, [# q$ b0 U% \" U
- textSize="14dp";
$ g7 V+ f* }: ]5 i: c6 M - };
: J9 B4 o6 V( K) y - };}6 h. z' h- T% \" Z
7 K/ V4 a! l$ u- 值=true
5 H- |+ D" z0 M7 `: I1 R1 T - " Q% V' c$ r. D9 C8 c! k
- lay.getChildAt(0).getChildAt(0).setOnFocusChangeListener{
5 R: l2 R/ k- _% @7 o - onFocusChange=function( v, hasFocus)0 }3 l! O1 ^# q: a4 M
- if hasFocus then
8 u7 O& h0 f! z+ H/ @ - + w" u2 ]) [' m+ E5 J; b! T5 `% ?
- import "android.view.animation.ScaleAnimation"; w. K7 k4 r5 o" l
- lay.getChildAt(0).getChildAt(1).startAnimation(ScaleAnimation(0.0,1.0,1.0,1.0,1,0.5,1,0.5).setDuration(200))" c, q. m# Z5 G5 M1 Q: q( ^) _# h
- lay.getChildAt(0).getChildAt(1).setVisibility(View.VISIBLE)
% Y6 \3 x6 Z9 U* E7 t - if lay.getChildAt(0).getChildAt(0).Text=="" then
2 R! D" |- g1 Q - import "android.view.animation.TranslateAnimation"4 L; B, S4 E* r* \& G! R
- lay.getChildAt(0).getChildAt(3).startAnimation(TranslateAnimation(0,0,0,-56).setDuration(100).setFillAfter(true))) B& u! ^& [: z3 c
- end
* y+ w z* J1 w, q2 Y n - , k O2 w* W* Y
- else+ \, s [2 ? p% J0 q: c6 M
8 `" b- i: M" t, D# a- lay.getChildAt(0).getChildAt(1).startAnimation(ScaleAnimation(1.0,0.0,1.0,1.0,1,0.5,1,0.5).setDuration(200))5 o: q7 {4 b- m8 Q% W( m
- lay.getChildAt(0).getChildAt(1).setVisibility(View.INVISIBLE)
& L- y% z. z3 O. F - if #lay.getChildAt(0).getChildAt(0).Text==0 then
* K! V! U$ W8 S& g# w( b# e - lay.getChildAt(0).getChildAt(3).startAnimation(TranslateAnimation(0,0,-56,0).setDuration(100).setFillAfter(true))
# K# R7 G9 S8 A& W) x3 w$ S) m% m - else" n0 l( s" J. h3 R
- lay.getChildAt(0).getChildAt(3).setTextColor(t.hint颜色1 or 0xff009688)* _' V3 K4 @7 C4 X. [
- end9 s0 j5 y+ K: v' t9 C+ N
; y( t! Q3 _, d W- end
* W+ J+ Y* T) b5 P& d& l3 p - end}. k' O+ N2 R" w/ O |" m& Y. i: x
- lay.getChildAt(0).getChildAt(0).addTextChangedListener{# F# N# f# @4 k3 |( f, e. y# m
- onTextChanged=function(s)
5 u6 o0 Z' ]4 ~/ i - 内容=tostring(lay.getChildAt(0).getChildAt(0).Text). J* x' G4 m5 D/ V" z, \
- if #内容==0 then
1 @0 E7 Z+ [! C7 z8 k T - lay.getChildAt(0).getChildAt(3).setTextColor(t.hint颜色2 or 0xff8b8b8b)) U b" i+ F' e: i/ g
- else
/ w0 E" |3 d+ B8 R. m% g# E - lay.getChildAt(0).getChildAt(3).setTextColor(t.hint颜色1 or 0xff009688)
1 d- q# X8 Q0 T" q& G - end
: |. N Z$ d5 p, W" l: W - end# k: F) M! L* N7 Q1 |. W$ W
- }
# V S* _5 V- L( e% Z8 g2 [( s - ) f& ?$ t# I5 L9 o1 O3 y
- v% v- k: y* x" T$ t* H. c$ C- lay.getChildAt(0).getChildAt(1).setVisibility(View.INVISIBLE), G( M# s& o+ T" S
2 l+ C' P: J$ s' ^" |0 Y/ k- function 取消焦点(app)6 u. ]( T8 M0 Y8 Z# d6 M \
- app.setFocusable(false);
/ v( \- G0 p& a7 H" j- I - app.setFocusableInTouchMode(true);& j2 i% r- ~6 I0 Z
- end+ F- W: w: O# W" u: h" `
- $ Y0 @: m$ D/ [* O" }0 }5 F
- return function() return lay end' H# }- G( ? U; c- Y+ J9 c- e G
- end: {. `4 p8 H- |6 ]) ~
- q! ~- x) S0 j9 q8 x' Q! c
- --主布局,导入封装模块必须在布局前面% X+ w3 \8 Z4 d( ?
- layout={: ^( e! R- d! G( L$ P! G
- LinearLayout;
* ^$ ~) B6 h& ` - gravity="center"; a& F1 A% f7 _. Z6 P8 |
- orientation="vertical";
6 z3 v! [. _& o6 f: V% Q' f$ U! w - {
+ n9 E6 A, e( _1 O+ [ - PretendEditText
0 T: {$ h s0 W3 W6 h; P& H( O J - {% e3 t% Z8 Q1 i; g& Q
- id="app";
2 \3 n! x3 o8 U - hint="账号";
; C, W, l9 R- O$ c. t - hint颜色1=0xFFE91E63;8 m9 n- n: h$ Y6 m* n
- hint颜色2=0xff8b8b8b;% S: f& P% A2 S6 E" c
- 字体颜色="#000000";- x. F8 X1 R* }( e
- 线的颜色1="#FFE91E63";! ^8 g7 ^! A; u# i4 Q% X
- 线的颜色2="#ff8b8b8b";7 u6 ~0 \6 x5 u8 G1 j0 y' f; o: r
- };1 b' y# U- [3 y2 K( w" s) C/ R
- };
0 l9 D8 u( o, Y/ [ - {
+ ]0 x, O. W" m2 \ - PretendEditText2 c$ F- q$ T" I t% b
- {3 a, |6 C& {' s6 S
- id="ap47p";- u# j# H" }) y% Y
- 5 k2 O) `' \# q* O
- hint="密码";0 ~' o( ]( d4 N# m* ?
- password=true;
z& Q1 X3 j* e' [2 H4 _& R$ Z - 字体颜色="#000000";, g; k8 p' i( b! L
- hint颜色1=0xFFE91E63;" ~, i: ^0 F- a( O, R
- hint颜色2=0xff8b8b8b;9 Q: k- N( F- W' q. {# }, h
- 线的颜色1="#FFE91E63";8 r6 B! B0 s) Y, q! ^8 S* |
- 线的颜色2="#ff8b8b8b";% ]# S% z) ?6 W6 S; o. h& O
- };0 k" D* v! p$ Z7 w- a
- };: l0 q" S+ l; k
- {
6 K( t7 y( G0 K+ @ - Button;$ ^+ a7 t k* X4 i) M N- h5 q, m3 w
- id="apo";4 ]! L8 w. X K7 k$ L
- layout_marginLeft="10dp";
1 n7 C& Q! d! V3 H* v. b5 `; ^ R8 L9 T - layout_width="fill";
/ H' P( f' j( s* `, b - text="确定";; b, I2 E; |( B8 v6 K" @/ b" N U
- layout_marginRight="10dp";7 O% r$ n" ?1 s1 R
- layout_marginTop="56";( [* o( H! Z# U
- };9 d0 m5 r7 N- v3 D4 Y
- };2 r4 j2 f3 [1 ]7 }
' {6 t( T4 z3 k. q% Y& ^/ @' H3 D) B- activity.setContentView(loadlayout((layout)))9 h4 v( g6 F6 ?1 s' Q+ R
4 G$ y) d; M. u) P& Y5 b3 u- function apo.onClick()
% ?) G, o& B" y | W - 取消焦点(app)
7 U$ _( p3 j0 C. {% K" E - 取消焦点(ap47p)" X, o8 ?6 \7 I" j2 t. Q
- end% x" t7 r, {# E( \
Q( E1 r" u+ |2 Y' W& D. C
复制代码 |
|