请选择 进入手机版 | 继续访问电脑版

星空社区

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 357|回复: 0

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

[复制链接]

407

主题

472

帖子

1622

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1622

荣誉管理论坛元老

发表于 2021-7-1 08:32:43 来自手机 | 显示全部楼层 |阅读模式 来自:
  1. activity.setContentView(loadlayout{
    9 s% {+ I6 f$ b2 r6 q: [" t, L( x- D
  2.   LinearLayout;$ g) H2 B: n% ^8 w( w+ E/ R4 o: ^
  3.   gravity="center";6 a- F6 B! Q- Y* _' Y+ ^- P
  4.   orientation="vertical";
    ; q3 Q: g( i+ a) i9 ^3 z- b
  5.   layout_width="fill";
    - k/ D# d9 E1 E
  6.   layout_height="fill";( R& u$ h+ t6 @0 D7 ^) }
  7.   {
    ! |/ g& r& {% O; P" t4 u
  8.     FrameLayout;! r1 O4 D$ n, {
  9.     layout_height=1080*0.35;7 j" o0 C; H5 v1 O# h
  10.     layout_width=1920*0.35;
    ) {/ R* z& x2 J
  11.     {
      R: H/ I( w& Q) S& R4 J; ^6 K
  12.       ImageView;3 }, s# X1 D. S( l/ W" v/ W
  13.       layout_height="fill";
    3 F9 B: L0 f1 q# }3 f2 x7 F
  14.       layout_width="fill";& u: \4 l7 }1 u  I% n1 E: K
  15.       src="https://api.vvhan.com/api/bing";. X1 d  |) R8 V3 ?  {
  16.       layout_margin="5dp";0 t/ F0 Z9 m. F3 m7 E# b
  17.     };
    ! G- n& l' u/ c& a* n# u' @
  18.     {- }+ Q6 V: u" e  b
  19.       LinearLayout;0 w( R4 t, L; s1 q, i# h. Z  I
  20.       id="相框";
    3 K  l, W9 Y5 p" x& C# l
  21.       layout_height=1080*0.35;
    0 P9 H* w2 \$ V) n& G+ j8 r" n9 I
  22.       layout_width=1920*0.35;5 i2 _" v* L1 c/ _! G4 c
  23.     };6 \" c4 m. a) e
  24.   };
    0 O0 |' L' ^) [2 i  Q
  25. })
    7 A6 z) i% T% o$ }: _* U
  26. . U/ w1 A( R  m& j

  27. 6 r0 i+ L9 K( T" W: z; h" M' ?$ I

  28. 9 c% z+ c! }. n8 U$ R, u) B8 L7 J
  29. function 边框(view,宽度,阴影,颜色,阴影颜色,外圆角,内圆角)
    1 z  U/ i; C" [8 E1 h5 T
  30.   import "android.graphics.*"
    2 K* v- m' s9 q. V) C3 I/ t5 ?
  31.   import "android.graphics.Paint$Cap"& M6 Y8 J5 c. z6 I5 c$ p  ^
  32.   local scale = activity.getResources().getDisplayMetrics().scaledDensity
    0 G. k6 G7 J2 E7 d  J5 m
  33.   function dp(dpValue)
    - U* p1 S- [0 K
  34.     return dpValue * scale + 0.5) D( h1 q7 ^, @+ a; m( a5 a
  35.   end
    5 j* g" Q- l$ E( z" U% j% B
  36.   $rectf=RectF()  c/ H8 T5 w4 ^7 O/ g6 j1 K# o0 A
  37.   $path1=Path()
    ) |/ p  t9 n! e( y) f3 V
  38.   $path2=Path()$ ~+ E3 x5 ^; q: Q! @+ R8 u
  39.   $画布=LuaDrawable(function(画布,画笔)
    " b  {( o* M- A0 P1 D+ V5 _( N
  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))))
    + T, c, Q/ _3 X
  41.     path1.addRoundRect(rectf,内圆角 or dp(2.5),内圆角 or dp(2.5),Path.Direction.CW)
    3 O! {9 H/ ]6 y5 K1 @3 S% P
  42.     rectf.set((阴影 or dp(2)),(阴影 or dp(2)),画布.width-(阴影 or dp(2)),画布.height-(阴影 or dp(2)))6 ]& K. i7 F, `  I: w$ J
  43.     path2.addRoundRect(rectf,外圆角 or dp(5),外圆角 or dp(5),Path.Direction.CW)
    - ]# T. P4 f! ~) q# @
  44.     path2.op(path1,Path.Op.DIFFERENCE)
    ; R5 X  {* ~9 E  ]; Y) U
  45.     画布.drawPath(path2,画笔)
    ) p# [7 b' ^5 p- l; c3 |
  46.     path1.reset()
    " X& F$ N% b/ F0 f; E
  47.     path2.reset()
    " b9 r+ W4 ~5 A. b) O
  48.   end)' ]2 b4 r" {1 E
  49.   画布.paint
    4 U% j1 T4 m% r% n
  50.   .setStrokeCap(Cap.ROUND)
    7 o+ R  n1 n2 b* A
  51.   .setAntiAlias(true)
    . `9 t( {4 S* m9 X) M
  52.   .setDither(true)
    : O0 @# h$ U2 e! D- h  E+ ~6 e9 P
  53.   .setShadowLayer(阴影 or dp(2),0,0,阴影颜色 or 0x7f000000)
    % i9 ^% F1 q2 g! K1 i5 U, `
  54.   .setColor(颜色 or 0xfff5f5f5)) U- W, W6 _8 A
  55.   view.background=画布
    + `- N) i4 }' `+ N$ P
  56. end2 r! u# G6 N4 {! a. [4 w
  57. 边框(相框)4 A! ~7 L, Q; V' {) Y- d
复制代码
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|星空社区

GMT+8, 2022-7-1 22:57 , Processed in 0.065042 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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