登录  | 立即注册

游客您好!登录后享受更多精彩

查看: 1404|回复: 0

[lua教程] 【lua教程】布局阴影边框

[复制链接]

444

主题

509

帖子

2051

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2051

荣誉管理论坛元老

发表于 2021-7-1 08:32:43 来自手机 | 显示全部楼层 |阅读模式 来自:
  1. activity.setContentView(loadlayout{
      ]- P  \2 a6 [  a# W- N0 M
  2.   LinearLayout;. X# X3 D8 Q0 H+ J, j  \) w/ j
  3.   gravity="center";. x3 ?) @; i8 w
  4.   orientation="vertical";
    / g0 E6 p1 p2 Y* N- g
  5.   layout_width="fill";: T; ]* `/ |' |# r& C
  6.   layout_height="fill";) r: ~' k0 o+ D$ ?( v5 T
  7.   {
    ! \- z6 L* {, P0 o' w! j- q! }1 l) W# q
  8.     FrameLayout;
    6 h- q/ O$ A) I" _+ A( t5 |! L7 g
  9.     layout_height=1080*0.35;
    & L% b6 G: Y- z3 ?5 j
  10.     layout_width=1920*0.35;
    3 m5 o" \+ M1 F  {; |
  11.     {1 B  ]" J+ \0 H0 E' c& J7 i
  12.       ImageView;- U7 m# @0 v- f0 F  r
  13.       layout_height="fill";
    - Y! n1 f0 m3 k! O% ]. p) j- y
  14.       layout_width="fill";# ]' h9 J; L  f' f4 P3 n2 [+ ^# b
  15.       src="https://api.vvhan.com/api/bing";
    & s7 c- O/ {* ^
  16.       layout_margin="5dp";
    & J/ Y, @+ V  L- k
  17.     };
    2 Z3 b+ b( K% P. h
  18.     {
    6 B! }+ c: S  X
  19.       LinearLayout;
    : i6 r, d" P! W$ U
  20.       id="相框";- M; ?: S5 X  q& X& j
  21.       layout_height=1080*0.35;
    4 e; N, f5 y2 l6 Y  x
  22.       layout_width=1920*0.35;3 q6 ~6 {3 p" r9 S
  23.     };
    2 f: G/ [9 Y0 b$ k  W2 `8 Y6 B
  24.   };
    5 m& L# ^. N# @9 n2 N5 l& _
  25. })
    ' W$ E& B; Y* K5 E* G9 t7 {

  26. % R$ T/ h1 P. z' b! @6 A
  27. ; Z5 t% A, q$ L8 Q9 z& G

  28. 2 {4 B# v+ X; @% ^
  29. function 边框(view,宽度,阴影,颜色,阴影颜色,外圆角,内圆角)* y8 |! V2 m0 g& c- h
  30.   import "android.graphics.*"* ?) ^1 X! s3 R1 Y$ V& t
  31.   import "android.graphics.Paint$Cap"
    # }" B# d' Z1 K" k+ Q, F* B' c
  32.   local scale = activity.getResources().getDisplayMetrics().scaledDensity$ X3 L9 h# Z7 x7 z4 L/ G
  33.   function dp(dpValue)
    5 q& ~7 k4 z! A( S/ R5 P
  34.     return dpValue * scale + 0.53 f4 u0 y, {' _% B$ ]5 ]5 m
  35.   end% J6 c% F2 l+ Q8 f
  36.   $rectf=RectF()9 Y( Q3 P. g# D( ]' \9 A
  37.   $path1=Path()
    / U! D6 m" A2 s) j9 c
  38.   $path2=Path()
    " y- X! Q4 H1 x4 o/ w
  39.   $画布=LuaDrawable(function(画布,画笔)
    : j7 @; a, f- Q! f" V7 ~: [
  40.     rectf.set((阴影 or dp(2))+(宽度 or dp(5)),(阴影 or dp(2))+(宽度 or dp(5)),画布.width-((阴影 or dp(2))+(宽度 or dp(5))),画布.height-((阴影 or dp(2))+(宽度 or dp(5)))). K( y4 ]- p* o5 L, u5 q3 e2 ?
  41.     path1.addRoundRect(rectf,内圆角 or dp(2.5),内圆角 or dp(2.5),Path.Direction.CW)
    ' h9 T, s4 ~' n! y$ s! _+ W: t
  42.     rectf.set((阴影 or dp(2)),(阴影 or dp(2)),画布.width-(阴影 or dp(2)),画布.height-(阴影 or dp(2)))% e) x9 U: G; R' y/ _! b3 A
  43.     path2.addRoundRect(rectf,外圆角 or dp(5),外圆角 or dp(5),Path.Direction.CW)4 m% T0 |9 X: [7 r
  44.     path2.op(path1,Path.Op.DIFFERENCE)
      L2 b  A6 N8 P7 O8 Z: C  P, U/ s
  45.     画布.drawPath(path2,画笔)
    1 C) Z% [  `! q) K
  46.     path1.reset()
    6 {+ Q6 B  G5 L" b, x
  47.     path2.reset()
    3 g* `4 K2 P8 O. I3 Y7 v  v
  48.   end)
    1 c" U! `8 k4 X0 ]% d5 D
  49.   画布.paint' e# K( L9 a1 ?7 J
  50.   .setStrokeCap(Cap.ROUND)& {" Z: T2 J' b7 n. j$ P: d; x
  51.   .setAntiAlias(true)
    - i  E- X- H  c& A/ S
  52.   .setDither(true)' O4 R# X) L1 Z9 h
  53.   .setShadowLayer(阴影 or dp(2),0,0,阴影颜色 or 0x7f000000); x# E1 x# Y. L1 Q. E! m* Q0 S& L
  54.   .setColor(颜色 or 0xfff5f5f5)& O) P; b6 L: u: [; L4 T8 j  w! Q
  55.   view.background=画布
      K( L2 v5 |$ k0 u7 a) s4 M( T
  56. end
    8 S% s* o2 x$ g* n8 m* J
  57. 边框(相框)
    : L( e' B/ m; f! T1 m- w. A
复制代码
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|星空社区 |网站地图

GMT+8, 2024-4-26 09:40 , Processed in 0.048894 second(s), 23 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表