|
- require "import"
) c) P7 d- [, T% S/ u) z, c0 H - import "android.app.*"( R& z. w! S8 D9 @ ^: K
- import "android.os.*"1 E% N0 F8 |9 A8 P
- import "android.widget.*"
! w) u/ |5 S( `: p - import "android.view.*"
6 |/ I2 O6 G+ U9 N# |% n - --分辨率转换函数- U- r$ z; f& W3 s6 Y
- function 转分辨率(sdp)
3 P) o, d l* J# k9 A+ k - --导入所需类 F' p8 U. g/ c8 `
- import "android.util.TypedValue"
" z; @7 Y+ ~, G$ K I: d) L
; J0 b! P& X* K6 @& [- local dm=this.getResources().getDisplayMetrics()' X) |% P# U* s" \2 ~5 \5 J
1 G s) |0 s% J( S0 k4 e- local types={px=0,dp=1,sp=2,pt=3,["in"]=4,mm=5}5 {9 U9 ^" W& A! W
$ f- K' i/ _3 |8 ~- local n,ty=sdp:match("^(%-?[%.%d]+)(%a%a)$")
$ V1 h* n. z. r) a - & O1 C+ [' ]3 F8 q4 b
- return TypedValue.applyDimension(types[ty],tonumber(n),dm)
8 A" b8 t% h6 N& K3 D, t
* ?8 [' J# J' Z& H9 @ a/ N- end
6 g# m+ o3 E1 f8 S) |8 B3 b
1 O" a# V! X3 Y( m
' m) ^' s% c! w7 X: N9 u' S- function drawTag(); j2 Q/ J+ W" ]8 ?/ V- m
- # I+ M/ |. h- f$ s
- import "android.graphics.RectF", A* L) R2 i3 X
' G, N( n0 R) Y/ f+ v. L- import "android.graphics.Point"
A" w' p; D# P) i - 9 x5 B6 p$ _* R0 H) \2 k
- import "android.graphics.Paint"
! S6 |7 A8 w) X - " D) I! z; e# `
- import "android.graphics.Path"
+ W" u0 ]/ d% {2 n/ }2 @/ `% } - / w1 [+ K: t# v' A3 I
- import "android.graphics.Color"; Q- V4 O) {: M9 X w- h
- 4 @3 r8 A! i, F4 L- x/ {
- return LuaDrawable(function(c,p,d)! U6 ?6 o- @2 ~8 L/ H Q1 o
3 P& P( ]" A1 M$ Q9 p& m- c.drawColor(0x00000000)
7 G, Y# R6 d/ M) z. Y" J& X - - i- Z1 i1 E" B7 z; P! y& s7 G
- p.setAntiAlias(true);/ S, i1 H! Z2 g
, Q% t' Y1 n9 m& t4 J- p.setStrokeWidth(20);
, E$ c. c7 p5 | O+ b! ~6 z# ] - : M/ Q3 o" u% }- z, F( B
- p.setStyle(Paint.Style.FILL);! d! B) Z5 T3 \9 Z, F% u# z/ h
6 O' M8 _$ b3 E, g: w( K6 `2 |- local quYu=d.bounds
* B: W- Q* H, f$ s- P( o
3 b6 U% ]5 [" X% h* o8 l- local width=quYu.right: N8 g$ y3 ]2 Z6 A
) `+ c( W6 t! A6 w- local height=quYu.bottom# J5 t# S j2 q& G
% d$ r$ L. @1 m, K- local radius = 转分辨率("12dp")& }& ~# L0 e# C2 w. }
8 R1 I, W& l# n- \% g8 Q7 K( y- p.setColor(0xffffffff)
( S! ~: I) F b; E* i - ! K* c& |" d: B2 u: y# b/ l
- p.setShadowLayer(25,0,0,0x22000000)+ ~# c5 P9 m( t* K2 d
* I4 t7 {; v6 C$ f/ Z+ ?- W0 p- local path=Path();
( o) f6 k7 w: y1 G
+ u$ R" U& w9 M$ E5 o- path.moveTo(0,radius/2);# A2 G, J% x$ i2 d3 D! e9 s1 R
- M4 I- o( u7 {9 |$ P( I* w6 {, ^- path.arcTo(RectF(0,0,radius,radius),180,90);( l" e' n7 M f; X3 ?
- ) i! v4 p6 m: E ]
- path.lineTo(width-radius,0); F. ?- c$ e: {6 _
4 {; q2 {. {% H- path.arcTo(RectF(width-radius,0,width,radius),270,90);. H" ]% b f% R* Q
L I2 ^; B4 a& N" T; a, D- path.lineTo(width,height-radius/2);
5 b3 L( ?6 R! ^. ~ C; t, G+ z
7 E* a" }& p I9 J$ g: d, P( J! ?2 o- path.arcTo(RectF(width-radius,height-radius,width,height),0,90);
' o: T+ D0 e: C: k9 P! X9 F
4 z- M, C/ y ^4 F- path.lineTo(width*.06,height);* |& |# B& {& R1 R$ o* d2 E
- + q' ~6 B% w) E! P- j* C
- path.lineTo(0,height-width*.06)
) p) ~" O4 V( j, } - . y9 Z* L$ u2 `2 Q! {7 ~! N) Y
- c.drawPath(path,p);- |+ Z4 ]* h$ j: V% w) j
- $ d4 ]! D; s; C( T
- p.setShadowLayer(15,1,-1,0x22000000)$ @$ y$ h- V- E3 Y; a% l
- : r; T f( L$ |. K* J& ~
- local path2 = Path()
5 }" |+ ~5 d; p3 b' b0 ?: S
J$ \) B1 B, b1 g- path2.moveTo(0,height-width*.06)0 B- t1 d+ o# z9 r7 y. N5 P
! E* C3 V; n7 o: H( J- path2.lineTo(width*.06-radius/2,height-width*.06);/ ^; h l, W% Q+ g
* a+ B) {1 I$ c) T$ f9 `6 d- path2.arcTo(RectF(width*.06-radius,height-width*.06,width*.06,height-width*.06+radius),270,90);
& }! f- I2 z2 p6 b4 U - : c* D2 A4 @9 d' M/ T
- path2.lineTo(width*.06,height)& G* A* x1 G/ |, Z8 o* l
! E0 g2 c0 y& x. Y2 l% p" \- c.drawPath(path2,p)
) P9 i. a# w$ f- r# T6 G: S - , [# Y. g" r, ?2 x: [7 Y6 T) X1 e
- end)+ }& G) R1 v3 [) s. [: s
+ l$ {) V- T. v$ } ~* h- @0 [; |- end
: t0 v a$ L: K$ s' L - 6 N$ z. G/ T/ @
. G" E, p2 [ n* b* J; e- 8 R& [* j: } u& f& z' G
- + c' _+ ?* G c# s( y0 a
0 r4 S/ h; M7 ]2 R% p8 R- function setTxt(view,view2): P0 `$ N- `- s `6 N/ u7 H
- local txt={"不好意思,我把你弄丢了。",/ E% ]/ q) s7 Z2 z9 ^, j x+ E
- "长风破浪会有时,直挂云帆济沧海。",% A r# y# z/ D# Z' N
- "你是无意穿堂风,偏偏孤倨引山洪。",
9 d& G$ k1 E2 O# Z/ \3 t$ J - "愿你天黑有灯,下雨有伞,未来的路有良人相伴。",4 q4 H4 O. A6 I2 {
- "我有一个梦,也许有一天,灿烂的阳光能照进黑暗森林。",
% }* {# Q1 N+ y5 ~6 h o, K - "自古美人如名将,不许人间见白头。",
9 k/ O5 e% B; T& ? - "什么都无法舍弃的人,什么都无法改变。",
8 d$ O2 n6 ]' F+ J6 n( e, f - "天不生我李淳罡,剑道万古长如夜。",
4 ^& M9 {, E6 z' F& a( C - "斑竹枝,斑竹枝,点点泪痕寄相思。",
3 n4 `- R+ u; C$ @ - "一切都会变好,超级好,爆好,无敌好。",
! Q3 W! o' D% ~7 ^ - "把喜欢的一切留在身边,这便是努力的意义。",
7 |5 |: y9 d. A% C3 M. v* u - "悲喜自渡,他人难悟易误。",5 x: X6 D; C6 i. t1 s. `; }" v7 S/ I6 D5 b
- "且以深情共白首,愿无岁月可回头"}. ]: D3 g" A- O& f p* Q
- import "java.io.File"0 F' H, a: J6 `) k3 o4 Z
- import "android.graphics.Typeface"
6 [0 @ y- H% f8 j& c - -- local bf=File(activity.getLuaDir().."/hkhbt.ttf");+ E( c) h0 ~& X5 R7 n9 i
- -- local tf=Typeface.createFromFile(bf)$ ? I4 p5 D/ P$ b
- view.setTypeface(tf).setLineSpacing(1.6,1.6).setLetterSpacing(0.13);
4 l* K) F" j7 ]% C- J7 w: d - view2.setTypeface(tf).setLineSpacing(1.6,1.6).setLetterSpacing(0.13);5 m! p& L* h: v- Q
- Http.get("https://v1.hitokoto.cn/?encode=json","utf8",function(code,content,cookie,header)0 u9 O/ M1 u3 b( n
- if code==200 then- l% E) }2 k) m! y1 X- U
- local cjson=import "cjson"1 o9 O+ L5 |- ~* a7 f, s
- local json=cjson.decode(content)
0 u- C% S2 Q. [: w% t - view.setText(json.hitokoto)
/ ^% y( r4 r5 f# W8 g' p- Z - view2.setText("——"..(json.from or "未知作者"))
/ y1 q% l8 v3 Y) V% E% x6 w- C - else
" J! R" @- I5 K' M* d; G2 r3 } - view.setText(txt[math.random(0,12)])
% i- C! l- g% l- p, n - view2.setText("——没有网络")1 M: x, L) m7 Q3 W
- end
2 o! x5 w, l; I; w, _) ]% Z8 l - end)
" g0 s: `, y& d! D; S9 `$ N - end
. g- z: |6 c" F- ]+ q! L, {' A$ M - ' e$ \' o% g& q$ X
4 W' ]# i: F9 L! D- * L6 N/ N0 y) i0 q; U$ I
3 c$ e" {0 U% O
' I5 c! u1 q u0 e a( o7 L. @, K h- layout={
( y; n m7 r, A0 X! W& s - FrameLayout;
# y O# ]6 p% p1 g4 a$ G - layout_height="fill";
& { N, v# d0 Q( w/ ~1 L: _/ w - layout_width="fill";! a2 r1 W) P, N' Q
- clipChildren=false;* \8 a/ V0 P- m0 L
- background="#ffffffff";
- q1 r: ^. j! n& g+ Z - {: t8 F6 u6 z0 z' \! y+ O
- LinearLayout;
5 g9 ~7 {- o! ~( f& s - layout_height="30%w";
" d$ u0 h, N' f6 m" H - layout_width="90%w";
7 C8 T0 ]& S4 C P( E - layout_gravity="center";$ B6 d; b" N5 }8 p% ~: J8 V" N
- backgroundDrawable=drawTag();2 _) `0 W4 W7 i, ^1 q
- orientation="vertical";* K6 Z( N3 C6 ]- ]& |( y$ F
- {( V1 b* s1 \& X& q
- FrameLayout;/ O* e! _2 R9 F7 R0 m
- layout_height="fill";
( f4 a0 _3 H3 a n) ]4 ?! H - layout_width="fill";: t6 Q4 s, T/ f' I- q7 m* R
- layout_weight="1";. v) }* X) a% `) |7 ^. L
- {
- a$ u' y. F8 X3 ] - TextView;/ T% m9 E" a( @5 s, c1 Q
- id="yiyan_txt";) B6 p7 A( K3 s9 P4 e
- textSize="13dp";2 S/ e5 D+ P$ I' O# Y0 R- l
- textColor="#ff333333";( U! i# B) B4 m) H$ W: H8 ~3 W
- layout_height="fill";
6 ]" \( \1 j6 D$ s - layout_width="fill";* N3 h+ t. Y7 t8 G0 X4 s- v
- layout_margin="15dp";
4 o8 {) r- D# b" P- \; j9 R - }2 U# [; r+ W& a6 D* f! s/ p
- },8 D- ~ v: Y$ { Y
- {
# {0 _. f2 x* U8 x - TextView; W/ r4 `- g9 g& d
- id="yiyan_wri";# Z# \: C/ F" l# ?/ J( v' T; z
- textSize="13dp";$ e' N0 V2 q/ _# H' W
- textColor="#ff333333";+ d8 S9 p+ B8 Q! N. R. j6 c9 V
- layout_height="wrap";! u9 n# B: n: R' ^
- layout_width="fill";) q% D4 k( i& P5 S: H3 y
- layout_marginTop="0dp";6 }8 @0 m0 P D1 s- e
- layout_marginRight="15dp";
) @. v/ U8 v9 `+ y, _7 u. e - layout_marginLeft="25dp";) |9 Y- e( N( h) N9 w: g" Q: Y9 ]
- layout_marginBottom="10dp";7 N4 g% A1 p$ ]$ g9 L' Z7 ?6 e& F
- gravity="center|right";
5 A. X' L) O ~ - }9 j/ x& U+ D8 e
- }5 `2 Z. l1 e8 B& o8 u$ K
- }' |) x$ v! X$ O9 G
- activity.setTheme(android.R.style.Theme_DeviceDefault_Light)--设置md主题
, v/ s2 t% _, I* W% g - # N P4 Y0 T& r" {, i
- activity.setContentView(loadlayout(layout))! h7 f4 ^- D) `; D# H
8 Q* R& [6 p+ A8 r7 h- setTxt(yiyan_txt,yiyan_wri), R5 S* X- v0 Q7 o, p5 r
- . W4 X# p9 c8 g3 k
复制代码 |
|