1.Բ?圆角源码圆角源码ǵ???Դ??
2.element-ui 组件库 button 源码分析
3.Android åè§ãåå½¢ ImageView å®ç°
4.å¦ä½å®ç°divåè§
Բ?ǵ???Դ??
直播源码网站,自定义平台界面,导航导航完成各项内容更改
添加依赖:
引入MaterialButton库,设置拓展基础Button功能,圆角源码圆角源码包括圆角、导航导航描边、设置冒险岛没源码icon设置及按压水波纹等,圆角源码圆角源码满足日常需求。导航导航
背景处理:
1.2版本后,设置MaterialButton可自定义背景色,圆角源码圆角源码通过app:backgroundTint属性设置,导航导航背景为纯色时适用。设置移动站点源码渐变色背景需自定义drawable,圆角源码圆角源码使用android:background属性。导航导航
注意:若使用android:background设置背景,设置需将backgroundTint设为@empty,否则背景不生效。
阴影调整:
默认带阴影,可通过指定style为Widget.MaterialComponents.Button.UnelevatedButton去掉阴影,实现扁平化视图。
关于theme:
MDC1.1.0后,使用MaterialButton可能遇到闪退问题,需设置theme为MaterialComponents。电源源码
解决方法:
1. AndroidManifest配置全局theme
2. activity层面配置特定theme
3. 控件局部配置theme
完成直播源码网站自定义平台界面,实现各项内容更改。欢迎探索更多功能,关注后续文章。
element-ui 组件库 button 源码分析
团队将基于新的 UI 规范构建组件库,并需实现具备多种主题换肤能力的 button 组件。该组件需支持字体颜色、背景颜色、边框和禁用状态的调整,同时加入一种幽灵按钮类型。分析后,出租平台源码决定不在 element-ui 组件库上进行改造,以确保更好的维护性。因此,将参考 element-plus 的 css 自定义变量实现这一目标。
深入分析 element-ui 组件库中的 button 组件,我们关注到以下几个关键点:
首先,button 组件提供了丰富的属性,如尺寸(size)、类型(type)、朴素样式(plain)、圆角(round)、etcp模块源码圆形(circle)、加载状态(loading)、禁用(disabled)、图标(icon)以及是否聚焦(autofocus)等,这些属性使按钮组件具有高度的定制性。
接下来,通过查看相关的文件路径,我们发现组件的逻辑主要集中在 button.vue 文件中。该文件定义了组件的属性和行为,而其样式逻辑则分散在多个文件中,包括 common/var.scss 和 theme-chalk/src/mixins/mixins.scss 等。
在 common/var.scss 文件中,定义了一系列公共变量,如主题颜色、字体颜色、字体大小等,这些变量可以通过不同的主题配置实现组件库的换肤。例如,$--color-primary 变量用于定义主要主题颜色。
为了实现组件的动态换肤,mix 函数被用于将两种颜色按不同比例混合,从而生成新的颜色。例如,mix($--color-white, $--color-primary, %) 表示将白色与主要主题颜色按 % 和 % 的比例混合。
为了遵循 Element 的样式规范,组件库采用了 BEM(Block Element Modifier)命名法来管理样式。在 packages/theme-chalk/src/mixins/mixins.scss 文件中,定义了一系列的函数,如 b()、e() 和 m(),分别用于创建基础类、元素类以及修饰符类。
在 button.scss 组件样式文件中,我们看到组件库的样式被单独管理,通过 Gulp 打包工具。文件中,@include b(button) 函数用于定义 el-button 类样式,同时考虑了相邻按钮间的间距、按钮大小、内边距、字体大小和边框圆角等参数。当需要定义不同状态的样式时,使用 when 函数来实现,如 when(loading) 用于定义加载状态的样式。
针对不同的按钮类型(type)、伪类状态和朴素按钮,组件通过覆盖默认的颜色、背景颜色和边框颜色来实现定制化。颜色的浅化通过 mix 函数与白色混合实现。文本按钮、按钮组以及不同的按钮状态都遵循 BEM 规范,通过生成相应的类样式来定义。
综上所述,通过研究 element-ui 组件库的 button 组件源码,我们深入理解了其设计的巧妙之处。这一过程不仅帮助我们学习了组件库设计的最佳实践,也为我们构建具备高度定制性和维护性的组件库提供了宝贵的启示。
Android åè§ãåå½¢ ImageView å®ç°
æ们è¦å®ç°çå¾çæ§ä»¶ç»§æ¿èª AppCompatImageView ï¼å®æ¯ ImageView çåç±»ï¼ä½æä¾äºæ´å¥½çå ¼å®¹æ§ï¼æ们å¨æ¤åºç¡ä¸æ·»å äºè¥å¹²èªå®ä¹çå±æ§åæ¹æ³ä»¥å®ç°æç»ç NiceImageView ï¼è¦å®åè§æè åå½¢çæ¾ç¤ºææï¼å°±æ¯å¯¹å¾çæ¾ç¤ºçå 容åºåè¿è¡âè£åªâï¼åªæ¾ç¤ºæå®çåºåå³å¯ãå¦ä½åå¢ï¼
ä¸ç§æ¯è¾ç´æ¥çåæ³æ¯è¿æ ·çï¼ç±äºå¾çæ¯è¢«ç»å¶å¨ç»å¸ä¸çï¼æä»¥ç¨ canvas ç clipPath() æ¹æ³å å°ç»å¸è£åªææå®å½¢ç¶ï¼è¿æ ·å°±è½è®©å¾çææå®å½¢ç¶æ¾ç¤ºäºï¼éæ° draw() æ¹æ³å³å¯ï¼
è¿æ ·ä½¿ç¨ src ã background å±æ§ç»ImageView设置æ¾ç¤ºçå¾çé½è½è¾¾å°é¢æçæ¾ç¤ºææãä½æ¯ç±äº clipPath() æ¹æ³ä¸æ¯ææé¯é½¿ï¼å¾çè¾¹ç¼ä¼æææ¾çæ¯ç³æï¼ä½éªå¹¶ä¸çæ³ï¼æ以éè¦å¯»æ¾å ¶å®æ¹æ³ã
å¦ä¸ç§æ¹æ³æ¯ä½¿ç¨å¾åç Alpha åæ模å¼ï¼å³
PorterDuffæ¥å®ç°ï¼ å®æ¹ææ¡£ ãè¿éæ们使ç¨å ¶ä¸çDST_IN模å¼ãæ´ä¸ªè¿ç¨å°±æ¯å ç»å¶ç®æ å¾åï¼ä¹å°±æ¯å¾çï¼åç»å¶åå¾åï¼å³ä¸ä¸ªåè§ç©å½¢æè åå½¢ï¼è¿æ ·æç»ç®æ å¾ååªæ¾ç¤ºååå¾åéåçåºåã
å°è¿éå°±å®ç°äºæ¾ç¤ºä¸ºåè§æè åå½¢äºãä½æ¯éè¦éè¿ src å±æ§æè 对åºçæ¹æ³æ¥è®¾ç½®å¾çï¼å¦åä¸è½è¾¾å°é¢æææã
ç»å¶è¾¹æ¡å°±ç¸å¯¹å®¹æç解äºï¼åªéè¦ç»å¶ä¸ä¸ªæå®æ ·å¼çåè§ç©å½¢æè åå½¢å³å¯ï¼
å½å¾çæ¾ç¤ºä¸ºåå½¢æ¶ï¼è¿å¯ä»¥ç»å¶ä¸ä¸ªå è¾¹æ¡ï¼ä½åè§ç©å½¢çè¯ç±äºåè§å¤§å°çé®é¢ï¼ç®ååªè½è®¾ç½®ä¸ä¸ªè¾¹æ¡å¯ã
ä½æ¯æ个é®é¢ï¼ç»å¶çè¾¹æ¡ä¼è¦çå¨å¾çä¸ï¼å¦æè¾¹æ¡å¤ªå®½ä¼å¯¼è´å¾ççå¯è§åºååå°äºï¼å½±åæ¾ç¤ºææï¼åè¿æ ·ï¼å·¦ä¸è§çè±çä¸è§äºï¼
é£ä¹å¦ä½è®©è¾¹æ¡ä¸è¦çå¨å¾çä¸å¢ï¼å¯ä»¥å¨ Alpha åæç»å¶åå å°ç»å¸ç¼©å°ä¸å®æ¯ä¾ï¼æååç»å¶è¾¹æ¡ï¼è¿æ ·é®é¢å°±è§£å³äºã
缩æ¾åçImageViewæ¾ç¤ºåºåç宽é«å°±æ¯å宽ãé«åå«åå»2åçè¾¹æ¡å®½åº¦ï¼è¿æ ·ç¼©å°çæ¯ä¾ä¹å°±æ¾èæè§äºãææå¦ä¸ï¼å·¦ä¸è§çè±çåºæ¥äºï¼
é®ç½©å¯ä»¥ç解为ä¸å±å¸¦éæ度çé¢è²ï¼é®ç½©é»è®¤ä¸ç»å¶ï¼å½å¶å®äºé®ç½©é¢è²æ¶æä¼ç»å¶ï¼å®ç°å¾ç®åï¼
ä¾å¦å ä¸ä¸ªéæ度%ç红è²é®ç½©åçææï¼
æ ¸å¿çå®ç°é»è¾å°±è¿äºäºï¼å©ä¸çå°±æ¯èªå®ä¹å±æ§åæ¹æ³äºï¼æå ´è¶£çå¯ä»¥çæºç ï¼é½å¾ç®åï¼å¸æå¯¹ä½ ææ帮å©å§ï¼
æ´å¤ç»èåç¨æ³è§GitHubï¼ /SheHuan/NiceImageView
å¦æä½ éè¦å®ç°ç±»ä¼¼ééçåå½¢ç»å头åï¼ä¾å¦ï¼
å¦ä½å®ç°divåè§
è¿ä¸ª..å¾ç®å
ä¸ç¥éä½ æ没æåè¿æåç¯ç»"ä¸è§å"å¾ççé£ç§å¸å±..æ¯å¦ä¸æµè±.ç¶åè¦è®©è±ä¼æ¾å°é¡µé¢çæ左边.ç¶åæåæ¯æµ®å¨å¨å³è¾¹.并ä¸æåä¼è´´çè±çè±ç£è¿æ ·ç±»ä¼¼ç..
è¿ä¸ªä¾åç¨çè·é£ä¸ªæ¯ä¸æ ·çææ¯.
å¨æ¯ä¸ªå¤§å±çéé¢å¶æä¸ä¸ªrtopårbottom,è¿2个å¨è´è´£åè§çåºåç.è¿2个å±éé¢åå«æ¾4个å°å±.并ä¸.4个å°å±çé«åªæ1PX.并ä¸ç»ä»ä»¬åå«å ä¸ä¸åçmarginå¼.å 为没ææå®ä»ä»¬ç宽度.æ以ä»ä»¬ä¼èªéåº.宽度å大å±æ¯ä¸æ ·ç...ä½æ¯å ä¸marginå¼ä¹å.å®ä»¬æ¬èº«ç宽度就ä¼åå°.ç±äº4个å°å±çmarginå¼é½ä¸ä¸æ ·.æ以é æäºä»ä»¬ç宽度é½ä¸ä¸æ ·,ä½æ¯è¿ç§å®½åº¦çå·®å¼æ¯å¾å°ç.åªæ2PX.åå°2边就æ¯æ¯ä¸è¾¹ç端ç¹é½åªç¸å·®ä¸PX...è¿æ ·å°±è±¡æN个ä¸åé¿åº¦ç线æè ç©å½¢å å èµ·æ¥å°±ä¼åæä¸ä¸ªå¼§å½¢