|
- require "import"9 Q& @" ?8 [6 D) C
- import "android.app.*"1 q0 u$ z6 r- K$ J
- import "android.os.*"
) V8 p5 A$ ]. V6 [ - import "android.widget.*"% u9 E/ d. W% W: f+ \
- import "android.view.*"
0 l0 j3 ^9 X* n4 v" H% l! h - 2 @. m3 e) _# O3 _- F( V
- import "com.androlua.*"
' R' H/ p. ~' e5 ~1 E5 S7 { A# Q0 L& E - import "android.graphics.*"& f: m+ W4 a. O2 B# K5 g3 l
6 ~7 C8 _, J4 g" i6 b6 ]. e- + J$ G w& s# G) e' ~% c
- --仿一个木函尺子功能,代码有点乱。6 G8 Z6 a1 ^2 V' ^ x5 |3 |
- --想做个吸附功能
- d, x+ s; L4 D; [" o& F4 H
, L. u- u( v3 \7 P4 n- --各种单位之间转换函数0 |* y) |. @) P1 U% k6 J+ v3 t
- function dpTopx(sdp)0 C$ I5 t$ z% c) G
- import "android.util.TypedValue" m. ^; X3 E$ J, k) j5 L
- dm=this.getResources().getDisplayMetrics()3 f; Y* B9 [) Q; ?! F- x' G
- types={px=0,dp=1,sp=2,pt=3,["in"]=4,mm=5}' V, u) Y9 s4 l2 R @
- n,ty=sdp:match("^(%-?[%.%d]+)(%a%a)$")
% u P7 J6 p1 M1 |" S( C - return TypedValue.applyDimension(types[ty],tonumber(n),dm)
; F+ Z) Y; \/ i - end
2 I, G, T) Q( |) u# l - 2 P# C" O5 Y7 u# a. {2 l) |4 ^
- - {# I( L! j' l- T
- ) X6 a* o; |, @, d, b' H- V" ~
- mm=dpTopx("1mm")
8 c7 O( M+ @- S0 `2 B c+ z
8 V( v; f3 `4 r: p# r% x5 t- activity.setContentView(loadlayout({& B/ S7 Q( G/ b. [
- FrameLayout,
) o( [! V1 Q* z- E3 D - layout_height="fill";( {. O/ j9 F) h0 P7 j1 u/ x5 _
- layout_width="fill";
' B6 H: `( j9 B) S' L* T - D; ~9 t& k2 [
- 7 P) S% C' O; l4 x
- - e& W) d4 T; ^
- {( @+ n" n6 \) g6 R# W4 {: t7 n
- LinearLayout;
$ Q K7 d; F9 J% v* w$ V# i" K - orientation="vertical";4 B: f# v- U4 w# _& C) |5 v# X
- layout_height="fill";
' V% O# W: m |4 w/ O, @ - layout_width="fill";
3 W' p+ t' E: V5 D4 q - Gravity="center|top",! k, {; }( a5 q" ~: D7 F
- {
+ Q* d' y4 T; M( s4 G - TextView;
7 X7 G9 r- R; \+ t# y' W - layout_height="300",9 S) l* r9 L# E( m4 [9 i' Q# S
- layout_width="fill",
2 _$ R5 `0 N5 f. v( O- B - layout_marginLeft="30",
! D: D: {) S$ {( m - id="tv",
2 n% `' I" B. b- t - };
- U5 o A0 h% [. e3 i& ?. a - },
. X2 y R( o: F5 d* G, c - 9 K, {; f5 t' |8 R! Q/ |: [ Z8 [
7 Z! x0 Y3 Z! x- {
7 w6 s& b5 P$ L, E4 C. h" M: \ - LinearLayout,/ ~, ~5 c: k! Y W" s: e
- layout_height="fill",
- W0 v8 X8 h4 h: Y. m - layout_width="fill",
- }4 E6 q- s3 L - Gravity="center",) B3 ~/ @3 g5 N; s+ `6 ?
- {3 D4 y9 [. G; P0 |# s( M
- TextView,
6 \5 x& x% m' A/ h$ n$ C) Y9 h1 M# z - layout_height="300",
6 M! V4 p9 p$ H8 X$ p - layout_width="300",
7 G! [2 e3 j' I0 g8 ^1 J. p7 g4 H - text=tostring(0),/ y3 {; a: \8 z; b9 p$ p# a
- Gravity="center",, ?* Q, O7 W. T# q: o [
- textColor="#ffffff",. m6 O/ J% G5 O
- textSize="60",: T6 T& a5 D. c- `% F
- id="tv4",, d5 \$ G+ g, H1 ]0 P/ i
- },% b- u' s- l8 k. {; o
- },
2 F) X( q& O( y0 A2 `
% n+ u5 s8 a9 j8 A- 3 N' W6 E9 j, ?% E {
8 o" N3 _# E2 n( T- {, L& U7 T9 x* g% k) X& R2 o
- LinearLayout,( U! _7 ]9 R* i5 {
- layout_height="fill",
1 ~3 I% _% g: X3 z$ i* ~% x - layout_width="fill",$ j8 s' S6 j5 q1 f- T' i
- Gravity="center",9 w8 |8 Q6 f; x2 K/ |: q6 m* w9 g
- {
! i1 h( ]& X) H; a+ `8 F, L. n - TextView,* Q# B+ N6 }; P% J
- layout_height="300",
- O: Q- }8 s; m) ~+ R - layout_width="300",
8 T T d2 P1 F4 _% A" q" w( i - text=tostring(0), N$ D! a$ W6 d4 k
- Gravity="center",
- Z. O. H+ m: K - paddingTop="150",0 `' d1 ? H% U% P$ d
- paddingLeft="150",# r: S. C- Y' @3 \
- textColor="#ffffff",
' A" x0 |% P6 j, Q. ]: I+ { - textSize="30",
% _& W- i% z4 x+ x/ l - id="tv5",
& v; ~( f9 ]7 f- m) g+ m [ - },
/ Y2 p7 z8 M t: j& ?8 w6 u - },
/ F3 X3 ^0 F4 k - ' a4 W1 v2 Y0 {, t b6 L H( A
- & A/ Y/ P! p, r. B( u. [% V
" |/ q9 G' S5 S! C+ n- {
/ f0 z6 @$ [: y H - LinearLayout,6 x e/ p) N. T) K" s5 T# l
- orientation="vertical",0 |& e0 ?0 B6 V' P- Y6 T
- layout_height="fill",
2 w) s1 {3 K5 H& _! R4 L8 O5 }! l8 W - layout_width="fill",
0 A; J; s) {+ s5 d' d - id="tv2",
' R5 w4 o4 p; N% l( |) a' D* S - {6 g& f5 S$ _" P& x: \; C# D
- LinearLayout,
4 ]! C! {# E5 _; R - layout_height="fill",$ y( o& ?% S6 |7 H; ?, ^
- layout_width=mm*2,' L" E r' u$ V4 c; ~& [" U
- Gravity="center",1 _% o* ?: x" p+ G
- layout_marginLeft="30"+mm,
$ ^+ D/ M9 F! L/ z$ f: N( J6 C, r - id="tv3",; v) A+ M$ u/ A9 s3 d0 W7 X/ A, P
- {
7 n/ [' @: p# h: ^* E/ s" `2 M - TextView,
5 F4 Z9 S/ u: e: g& A$ W( M8 \: O - layout_height="fill",' E) z% ?2 {2 _% ~* T; D8 `
- layout_width="4",
4 M, d# K$ W& o/ R - background="#808080",5 r" {6 _2 i" w6 E
- }," _6 r5 p; X T& p
- }, z* s& v8 O! r, r2 M" ^
- I+ G; U) d1 `+ g6 A+ F' W- },
+ Z# J& r/ O* y' p5 H+ M! q5 S - . o! l7 _; x3 c1 H
- 1 h( y+ m8 f% I: |7 @5 x
- ( t4 n) n. w) D3 M
- }))
& g% w$ z$ U( [. u$ m3 J2 K3 e
& X1 l. L2 a8 {- ) V5 r; O' H4 I1 S/ L, I6 E
- ( O2 q7 v; X% I9 L6 |- {% D6 N9 ?
- --横屏模式: _' A+ Q+ Z: E5 ^
- activity.setRequestedOrientation(0);
/ F5 M! H4 d4 c - ( K% d1 j* x& s* n+ {
- 6 i- f5 D1 L1 Q7 z; l6 O
- / p6 a' D9 |% h# [) _/ i- `
- 5 Q4 C1 K' S/ o+ t6 g; k& N# S( z
- , h0 q" z8 k: @6 V4 g7 n9 z, b! G
: h8 }# E! a+ D5 [- q- f d- 1 X: s j* ?4 ]& z/ O! v
- myLuaDrawable=LuaDrawable(function(mCanvas,mPaint,mDrawable). C6 X+ X2 T5 f% f& \, }* c# U- W
- 0 K; T$ q) k) S' n# C" I* y7 l
- --画笔属性3 S5 N) G8 M& ]# ?
- mPaint.setColor(0xFF9C9A9D)
1 \. R5 n: i% |8 R - mPaint.setAntiAlias(true)
, c$ K: n: f) y9 h* A - mPaint.setStrokeWidth(2)9 H, ^3 n, F3 T1 q, f4 ]3 \& H' S
- mPaint.setStyle(Paint.Style.FILL)
2 `) o: C2 D, h9 X9 f) ]2 y - mPaint.setStrokeCap(Paint.Cap.ROUND)
( d( T/ S3 v/ L9 z8 g - mPaint.setTextSize(28)
6 F/ c/ {0 d& p& k- f1 L, i
4 _4 U% B9 z: s7 a* J
3 n1 p0 X/ ]' t0 ^4 X- MaxPx=mDrawable.getBounds().right-303 X/ c- r! j' U' r; m, ^
- 3 D' w4 F( d7 H3 g/ o
- MaxMm=math.ceil(MaxPx/100)7 _! a# D' o2 X+ l4 `7 Z) _
, |' z: B. N+ z
0 X4 `0 `1 f I1 U7 i
) D9 i* [8 N" G% }: v( p: Q- --mCanvas.drawColor(0xffffeeaa): B5 [% W0 C* M/ }
- , j {. e" \. O% h5 Y
: ?9 V* `. P/ Y0 R: m" G- 2 ~8 M! D, M% ^( ^! x- u0 }* a
1 @0 y D8 k2 _# F% d- for i=0,MaxMm*10 do
- g. e; y( g4 w# W9 S
! d Y7 @$ \( ?$ o( m/ e- if i%10==0 then
# A4 U6 b, ^8 ^6 S0 g: B
1 W9 J- e* {6 E% _. [* T2 y- mCanvas.drawLine(mm*i+mm,0,mm*i+mm,80,mPaint)
' J/ S' s8 E7 S3 `2 P) D+ A' _
) `# x" G) b. n: g. x
: o7 k$ l! u0 B- I- mCanvas.drawText(tostring(math.modf(i/10)),(mm*i+mm)-mm/2 ,120, mPaint)& D- k2 Z% C+ Y2 G; N
3 \: g- V+ C e' N$ P9 D- w" \- elseif i%5==0 then
; S7 f1 I6 y/ |6 ^" X
) _/ \3 F, Y% x- mCanvas.drawLine(mm*i+mm,0,mm*i+mm,60,mPaint)
5 s! z. D* l; E7 g - , A4 d. u. i; Q2 Y
- else
% @+ e5 L" _7 \# Q4 R
$ t- O, |$ a, J; r- mCanvas.drawLine(mm*i+mm,0,mm*i+mm,40,mPaint)% _/ l Q2 Y2 s3 }3 E% Z
- 3 U: [& d6 X% }8 g
- end
. l% M6 V8 ?9 _; M& }" p+ L1 a
( H1 }" R- M/ w- end8 c. [/ o1 A5 o7 b P: O
- - ?2 {: i- C# e, k! x6 c, O' x
- ) o! k% m! }% z! Z
- * W. N5 t% N% n4 L" z9 L0 A* a
- c2 Y" u, X( N, U& x" R3 O
- end)* I+ g8 H7 c; z" }, t
! P* @7 D5 K) n+ a& k2 k- 5 L, A2 P( V) b. m
: g$ S5 \0 W; C. u4 P, {- --绘制的Drawble设置成控件背景
5 ?! `6 e J) R& \4 R' j; ~$ Q - tv.background=myLuaDrawable
- d8 ~2 E) T6 p' C - + ^' x2 A7 b+ y: @5 y3 u N# P2 t
- 1 n6 Q0 J* ~3 } {0 Z" u
5 \( O8 I. f; C- s: N* E
0 l$ l, ?0 T; _- x. l8 t
4 e# R3 b8 w$ z- tv2.onTouch=function(v,e)
; U: n" \) S' T
( w* n3 N! n* `$ Y/ N, q- a=e.getAction()&255( [% s3 B, A) L7 I0 |
( ^$ A+ J; c: b/ g l, ?- switch a
9 [; {+ d5 K! v5 |
6 _' t4 F! n& C# P% f& z, T4 {- case MotionEvent.ACTION_DOWN/ M' E- f# j) h+ o
- 5 D; g) J. S& \# v5 T( F
6 c3 d' D7 f: p# ^& E H! _- case MotionEvent.ACTION_MOVE" B+ F& A6 M' E0 g; V1 d \
- & s2 f+ B: f z7 r! |
- moveX=e.getX()& B! S3 E# S3 Q- o/ m" w: G% @* B
- 1 W7 E/ _) W8 w: H
- tv3.setTranslationX(moveX)9 q5 b; w" V4 C3 @* J+ S" z
- $ x$ K/ H$ F6 @, _8 z1 F
- --print("≈"..math.floor(moveX/mw).."mm")# F% U% X4 E% T* y6 q
- p& |, n) T% N& U0 B- a=math.floor((moveX/mm)/10)0 q+ z& b' D+ J8 l' f- Q
- 2 y: E4 }" g/ e
- --向上取整- y9 H" K) e" D" j% B- z
- tv4.Text=tostring(math.floor((moveX/mm)/10))
# a6 T B% n, ~0 }1 r8 r$ L
: C& N* @' B0 ? b- \- --向上取整
" Q( L7 W0 A! a - tv5.Text=tostring(math.floor(moveX/mm)-a*10)
+ l! h2 u( Y7 d/ b
$ A6 G- _# x y* S- T" E M- ; a6 L6 [7 O- R# k
- case MotionEvent.ACTION_UP
& ~3 g- W+ `# h" S5 N2 C: m2 M - * I) _6 a9 W, j' o. F& X' L
- end
' z) [+ f, d7 `! g4 f5 i
' s2 G; F# @6 C% @& h& ^- return true* S; t5 z1 l+ ?6 \& w0 J1 L$ i
- end
7 A5 B1 d* x. K( S
; ] |- e3 p# |0 B+ Z# ?- ' ~5 c v( c1 X2 p7 I+ [6 [3 n
" b8 M2 @7 F3 V' Y- W% l
) F) i; y! D6 R! H$ C
) J, w. @5 I( H, J% P0 d5 r) w- myLuaDrawable2=LuaDrawable(function(mCanvas,mPaint,mDrawable)
" T# o. L0 w) ?' p/ r - 4 W; e$ [8 [8 p5 {
- --画笔属性
; v. t2 ^. T$ z - mPaint.setColor(0xFF636562): Q2 t5 H3 z2 X4 S! F
- mPaint.setAntiAlias(true)0 g, P" A% Q1 b3 e: t# J' V- ~9 u
- mPaint.setStrokeWidth(20)8 c6 W2 B0 B, e# ]- w) L: ?
- mPaint.setStyle(Paint.Style.STROKE)
2 |- W0 v3 {. [5 @ - $ J9 l7 m( \( ^6 u3 a5 ~- `3 k& h
- --mCanvas.drawColor(0xffffeeaa)1 a; Z$ R1 b* T* }# L; y9 L! e1 P
9 j9 c6 \4 p7 N$ Y" N- mCanvas.drawCircle(150, 150, 100, mPaint);
% e" Z4 @' [4 j' H6 ` - 4 O `* A3 \2 P! k' k3 x! q
- mPaint.setColor(0xFF9C9A9D)! q: M$ R% V# o$ L
- mPaint.setStyle(Paint.Style.FILL)8 U; z' @# z3 i _" J, i
- ) H/ V+ V5 l+ b+ v1 S
- mCanvas.drawCircle(150, 150, 90, mPaint);2 r R$ Y; B' `8 n% o! c2 ~
- . {: G! r% u; y. k8 `
- end): p2 P) h) [3 X+ U8 ]; a
+ i6 x: f! W' R
9 ^7 }& l; Z0 g9 i
2 O9 j: Y; A+ ^- --绘制的Drawble设置成控件背景
8 k ]: y1 c/ a& `* I! t$ H - tv4.background=myLuaDrawable28 f* P( S# s- l+ F0 v
, n1 U' o# s" P& @5 K8 v5 G
) E7 S: M5 k- ^) o- myLuaDrawable3=LuaDrawable(function(mCanvas,mPaint,mDrawable)8 h3 X" [# y' s" p* |1 H
4 N: b1 W3 O+ V+ g- --画笔属性8 O5 F3 A1 \7 L9 [
- mPaint.setColor(0xFF434542)
# F: r5 h2 B) h; ^ - mPaint.setAntiAlias(true)
- x& G" J- X+ _: C9 r9 K" \ - mPaint.setStrokeWidth(20)# V8 {5 a5 A4 F. B
- mPaint.setStyle(Paint.Style.FILL)4 v7 P4 b0 U9 i. h4 T8 k
- 2 B- @4 M8 L6 s8 g- J+ d
- mCanvas.drawCircle(225, 225, 50, mPaint);& V9 b) q. S* l8 t( z+ r
- " F. t' `2 w8 y3 E" v: S) I) z
- end)
7 J- U% [7 \: I, `5 `( x, F9 ]
# e& v9 t! S% s6 ~- [- tv5.background=myLuaDrawable38 I, ~" J, M, B+ l; `! u4 j
复制代码 ! C( L) O0 R. T& p
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
|