当前位置: 首页 > news >正文

如何快速更新网站快照甘肃省交通建设项目招投标中心网站

如何快速更新网站快照,甘肃省交通建设项目招投标中心网站,网站通内容管理系统,如何制作网站模板一、概念 所有的绘制操作都是通过调整像素大小来执行的。若要确保项目在不同的设备密度和屏幕尺寸上都能采用一致的尺寸#xff0c;请务必使用 .toPx() 对 dp 进行转换或者采用小数尺寸。 二、Modifier 修饰符绘制 官方页面 在修饰的可组合项之上或之下绘制。 .drawWithCon…一、概念 所有的绘制操作都是通过调整像素大小来执行的。若要确保项目在不同的设备密度和屏幕尺寸上都能采用一致的尺寸请务必使用 .toPx() 对 dp 进行转换或者采用小数尺寸。  二、Modifier 修饰符绘制 官方页面 在修饰的可组合项之上或之下绘制。 .drawWithContent fun Modifier.drawWithContent(     onDraw: ContentDrawScope.() - Unit ) 在 Lambda 中调用 drawContent() 就是绘制所修饰的内容由此控制先后顺序后绘制的会显示在上面。 .drawBehind fun Modifier.drawBehind(     onDraw: DrawScope.() - Unit ) 修饰的内容会显示在 Lambda 内容之上底层是先绘制 Lambda 内容再绘制所修饰的内容后绘制的会显示在上面。 .drawWithCache fun Modifier.drawWithCache(     onBuildDrawCache: CacheDrawScope.() - DrawResult ) 当绘制复杂效果时不希望因为重组而重新创建 Lambda 中用于绘制的实例如 Bush、Path 等这可能会产生内存抖动。在 Lambada 中调用 onDrawWithContent()、onDrawBehind() 就类似于上面两个修饰符的功能。 Composable fun Demo() {Row(modifier Modifier.size(150.dp),horizontalArrangement Arrangement.Center,verticalAlignment Alignment.CenterVertically) {Image(painterResource(id R.drawable.logo_wechat_square),contentDescription null,modifier Modifier.size(50.dp).drawWithContent {drawContent()drawRedDot() //后绘制的会显示在上面})Image(painterResource(id R.drawable.logo_wechat_square),contentDescription null,modifier Modifier.padding(start 10.dp).size(50.dp).drawBehind {drawRedDot()})} }fun DrawScope.drawRedDot() {drawCircle(color Color.Red,radius 18F,center Offset(drawContext.size.width, 0f)) } 三、Canvas() 可组合项绘制 是一个可组合项。Compose 作为跨平台 UI 框架所使用的 Canvas() 函数只是一个封装最终还是调用具体平台即 Android 原生的 Canvas。 fun Canvas(         modifier: Modifier,         onDraw: DrawScope.() - Unit ) Spacer(modifier.drawBehind(onDraw)) 发现该方法只是一个封装真正绘制的是调用 drawBehind()。绘制内容是显示在 Spacer 下面的由于 Spacer 是透明的因此我们所绘制内容得以全部显示。 四、Brush 官方页面 用于绘制颜色只指定一种颜色就是纯色。 linearGradient 线性渐变 fun linearGradient(         colors: ListColor,        //渐变颜色         start: Offset Offset.Zero,        //开始的位置         end: Offset Offset.Infinite,        //结束的位置         tileMode: TileMode TileMode.Clamp        //重复模式 ): Brush 水平渐变和垂直渐变底层就是调用的线性渐变。 horizontalGradient 水平方向渐变 fun horizontalGradient(         colors: ListColor,         startX: Float 0.0f,         endX: Float Float.POSITIVE_INFINITY,         tileMode: TileMode TileMode.Clamp ): Brush verticalGradient 垂直方向渐变 fun verticalGradient(         colors: ListColor,         startY: Float 0.0f,         endY: Float Float.POSITIVE_INFINITY,         tileMode: TileMode TileMode.Clamp ): Brush radialGradient 放射渐变 fun radialGradient(         colors: ListColor,         center: Offset Offset.Unspecified,        //中心位置         radius: Float Float.POSITIVE_INFINITY,        //半径         tileMode: TileMode TileMode.Clamp ): Brush sweepGradient 扫描渐变 fun sweepGradient(         colors: ListColor,         center: Offset Offset.Unspecified ): Brush 4.2.1 使用 colorStop 更改颜色分布 自定义颜色在渐变中的显示方式可以调整每种颜色的 colorStop 值0 ~ 1 之间的小数。 val colorStops arrayOf(0.0f to Color.Yellow,0.2f to Color.Red,1f to Color.Blue ) Box(modifier Modifier.requiredSize(200.dp).background(Brush.horizontalGradient(colorStops colorStops)) ) 4.2.2 使用 TileMode 让图案重复显示 当未指定 Brush 的开始位置 start 和结束位置 end 时默认会填满整个区域只有在区域 Brush 时 TileMode 才会在渐变中平铺。以下举例 HorizontalGradient 的效果。 TileMode.Repeated将区域剩余空间绘制为重复的顺序颜色。TileMode.Mirror将区域剩余空间绘制为重复的反转颜色。TileMode.Clamp将区域剩余空间绘制为结束颜色。TileMode.Decal将区域剩余空间绘制为透明色。仅适用于 API 31 及更高版本。可使用 TileMode.isSupported() 确定设备是否支持 TileMode。如果使用了不受支持的 TileMode系统会应用默认的 TileMode.Clamp。 4.2.3 更改 Brush 大小 当知道绘制区域大小时如在 DrawScope 中通过 size 获取可以按照 TileMode 方式平铺在不知道的情况下如将 Brush 分配给文字可以扩展 Shader 重写 createShader() 函数利用绘制区域大小 size 形参。对于 radialGradient 如果未指定中心位置 center 和半径radius渐变将占据整个 DrawScope 但是是以宽高较小的那边为直径此时自定义大小会获得更好的效果发散到屏幕外边去。 val listColors listOf(Color.Yellow, Color.Red, Color.Blue) val customBrush remember {object : ShaderBrush() {override fun createShader(size: Size): Shader {return LinearGradientShader(colors listColors,from Offset.Zero,to Offset(size.width / 4f, 0f),tileMode TileMode.Mirror)}} } Box(modifier Modifier.requiredSize(200.dp).background(customBrush) ) 4.2.4 使用图片作为 Brush 如需使用 ImageBitmap 作为 Brush请以 ImageBitmap 的形式加载相应图片然后创建 ImageShader Brush。可以应用于一下几种类型的绘制背景、文字、画布。 val imageBrush ShaderBrush(ImageShader(ImageBitmap.imageResource(id R.drawable.dog)))//用于 background Box(modifier Modifier.requiredSize(200.dp).background(imageBrush) )//用于 TextStyle Text(text Hello Android!,style TextStyle(brush imageBrush,fontWeight FontWeight.ExtraBold,fontSize 36.sp) )//用于 DrawScope#drawCircle() Canvas(onDraw {drawCircle(imageBrush) }, modifier Modifier.size(200.dp)) 五、DrawScope 官方页面 在 DrawScope 中可以访问到 drawContext 成员它存储了以下信息绘制尺寸size、封装的canvas、用来旋转缩放移动的transform而通过 canvas.nativeCanvas 就能获取具体平台的实现即可以调用 Android 原生的 Canvas 来实现更多需求。 绘制drawLine 画线drawRect 画矩形drawRoundRect 画圆角矩形drawImage 绘制图片drawCircle 画圆形drawOval 画椭圆形drawArc 画弧度跟扇形drawPath 画路径drawPoints 画点行为inset 将DrawScope坐标空间平移translate 平移坐标 rotate(旋转坐标)讲的是旋转了多少角度 rotateRad旋转坐标讲的是旋转了多少弧度 scale 缩放坐标clipRect 裁剪矩形区域绘制在裁剪好的矩形区域内。ClipOp.Difference从当前剪辑中减去提供的矩形。clipPath 裁剪路径drawIntoCanvas 直接提供底层画布withTransform 组合转换 5.1 绘制 5.1.1 画线 drawLine() fun drawLine(         color: Color,         start: Offset,         end: Offset,         strokeWidth: Float Stroke.HairlineWidth,         cap: StrokeCap Stroke.DefaultCap,         pathEffect: PathEffect? null,         /*FloatRange(from 0.0, to 1.0)*/         alpha: Float 1.0f,         colorFilter: ColorFilter? null,         blendMode: BlendMode DefaultBlendMode     ) cap 线条两头的形状 StrokeCap.Butt 平的(默认)StrokeCap.Square 也是平的但是长一截StrokeCap.Round 圆的 pathEffect 线条效果 PathEffect.cornerPathEffect(radius: Float) 将线段之间的锐角替换为指定半径的圆角 radius是半径 PathEffect.dashPathEffect(intervals: FloatArray, phase: Float 0f) 将形状绘制为具有给定间隔的一系列破折号。比如虚线 例如interval{205}第一个参数表示虚线的长度是205是虚线之间的间隔是5. phase 偏移 PathEffect.chainPathEffect(outer: PathEffect, inner: PathEffect) 创建一个PathEffect将内部效果应用于路径然后应用外部效果 PathEffect.stampedPathEffect(shape: Path, advance: Float, phase: Float,style: StampedPathEffectStyle) 用path表示的指定形状冲压绘制的路径.  shape要踩踏的路径,advance 每个冲压形状之间的前进间距, phase 在压印第一个形状之前要偏移的相位量, style如何在每个位置转换形状因为它是冲压. style有三种取值 StampedPathEffectStyle.Translate 平移 StampedPathEffectStyle.Rotate 旋转StampedPathEffectStyle.Morph 变形 5.2 行为 5.2.1 缩放 scale() 5.2.2 平移 translate() 5.2.3 旋转 rotate() 5.2.4
http://www.hkea.cn/news/14280052/

相关文章:

  • 做酒的网站有哪些全球速卖通注册条件
  • 婚纱摄影类网站模板专业建网站 优帮云
  • 五个推进网站建设工作国外做直播网站
  • 网站开发与运维面试问题wordpress 网站小模块
  • 全球网站流量排名100资阳seo公司
  • 推广网站免费网站开发接单群
  • seo网站分析企业主页的特点
  • 太原网站优化价格营销点子
  • 中国建设银行安徽省分行招聘网站深圳华强做网站
  • 增长超人做网站多少钱低价建网站
  • 公司建网站多少钱wordpress 全站备份
  • 章贡网站建设网站建设运行情况简介
  • 二级域名网站怎么做做网页流程
  • php网页模板南宁seo
  • 长宁做手机网站建设视频网站备案
  • 做企业网站可以没有后台吗手机网站制作流程
  • 网站引流推广怎么做免费ppt模板下载官网
  • 建筑工程人才网福建seo
  • 汽车网站建设论坛钢铁行业公司网站模板
  • 谷歌网站 百度ppt在线浏览网站源码
  • 网站建设考试知识点如何给网站建设提意见
  • 宁波汽车网站建设免费咨询服务合同模板
  • 包工头接活网站app店面设计原则
  • 邢台网站建设的地方佛山外贸网站制作公司
  • 企业网站优化的原则平台及服务是什么
  • 贵港网站设计网站站点结构图
  • 好的活动策划网站广州整合营销
  • 如何查询网站开发语言网页字体尺寸设计
  • 手机版网站设计案例湖北住房和城乡建设厅网站
  • 怎么用自己的网站做网页网站建设的简历