和尚我有个小需求是根据主题配色更改 EditText 中输入框光标的颜色,网上查了一些资料,大部分都是直接用的 xml 方式在做调整,但是和尚我需要的是在 Java 代码中动态调整光标颜色。...虽然是一个很简单的东西,但是和尚我在测试中还是遇到了不少的小问题,现在简单整理一下,希望对于遇到相同问题的朋友有所帮助。...设置一个 EditText,通过 Java 方式调整光标颜色,此效果为和尚我期待的效果,将上个步骤中 Tips 方式调整即可; ?...android:textCursorDrawable="@drawable/editext_cursor" 样式,之后在 Java 代码动态修改光标颜色和宽度。...GradientDrawable myGrad2 = (GradientDrawable) getResources().getDrawable(R.drawable.editext_cursor);
有些App在点击下载按钮的时候,可以在按钮上显示进度,我们可以通过继承原生Button,重写onDraw来实现带进度条的按钮。...2.原理: 创建三个GradientDrawable作为按钮背景、进度条背景和进度条前景,通过计算进度条的百分比来设置宽度,然后调用invalidate()重绘。...if (progressWidth 的时候,进度条的圆角就和背景的圆角不一致...,所以加上了上面这段代码。...获取宽度和高度其实用getWidth()和getHeight()也可以,只不过在设计器中没法看到效果,所以我用了getMeasuredWidth()和getMeasuredHeight()。
getDrawable(int rgb, int corneradius) { GradientDrawable gradientDrawable = new GradientDrawable...(); gradientDrawable.setColor(rgb); gradientDrawable.setGradientType(GradientDrawable.RECTANGLE...); gradientDrawable.setCornerRadius(corneradius); gradientDrawable.setStroke(UIUtils.dp2px...(1), rgb); return gradientDrawable; } public static StateListDrawable getSelector(Drawable...pressDrawable) { StateListDrawable stateListDrawable = new StateListDrawable(); //给当前的颜色选择器添加选中图片指向状态
那么通过代码直接创建这些drawable,可以在一定程度上降低这些副作用。本篇介绍用kotlin DSL简洁的语法特性来实现常见的drawable. 代码对应效果预览 ? ? ? ? ?...集成和使用 在项目级的build.gradle文件中添加仓库Jitpack: allprojects { repositories { ......由于创建shape等需要设置各种属性来构建,比较符合build设计模式,那我们首先封装build模式的shapeBuilder,这样做虽然代码比起直接使用apply{}要多,但是可以让纯java项目用起来很舒服...private var mShape = GradientDrawable.RECTANGLE private var mSolidColor = 0 /**分别设置四个角的圆角*/...xml方式可以提升性能 dsl方式比起build模式和调用方法设置更加简洁符合kotlin风格 通过合适的代码管理可以复用这些代码,比xml管理方便 缺点: 没有as的预览功能,只有通过上机观测 api
那么通过代码直接创建这些drawable,可以在一定程度上降低这些副作用。本篇介绍用kotlin DSL简洁的语法特性来实现常见的drawable。...代码对应效果预览 image.png image.png image.png image.png 集成和使用 在项目级的build.gradle文件种添加仓库Jitpack: allprojects {...private var mShape = GradientDrawable.RECTANGLE private var mSolidColor = 0 /**分别设置四个角的圆角*/...builder).build() } //使用方法 val drawable = shapeDrawable{ ... } 备注:dsl用法参见juejin.cn/post/695318… 中dsl...xml方式可以提升性能 dsl方式比起build模式和调用方法设置更加简洁符合kotlin风格 通过合适的代码管理可以复用这些代码,比xml管理方便 缺点: 没有as的预览功能,只有通过上机观测 api
我学习Android都是结合源代码去学习,这样比较直观,非常清楚的看清效果,觉得很好,今天的学习源码是网上找的源码 百度搜就知道很多下载的地方 网上源码的名字叫:Android仿真翻页效果.zip我的博客写的比较乱...,要想实现这样的效果, 首先必须要知道一个知识点,就是:渐变式的背景 GradientDrawable 关于这个类有一些常量: GradientDrawable.Orientation BL_TR...(GradientDrawable.LINEAR_GRADIENT); } 好了,上面的代码就处理完我们需要预定的背景了 二.接下来首先需要考虑的是,如何把这些背景画到画布上去呢。...上面的函数是把弧度转换成度, java.lang.Math.atan2(double y,double x)返回正切值 tan(θ) = y / x 返回值为笛卡尔平面中的角度,该角度由 x 轴和起点为原点...} 到这里,整个代码就分析完毕了,实现的效果就如文章开头给出的效果 源码地址:http://download.csdn.net/detail/u014737138/8133913
GradientDrawable的静态使用(xml中使用shape标签定义) 在drawable中创建一个xml文件,在布局文件中直接引用这个xml文件即可 GradientDrawable并使用 用shape标签定义的xml,最终都是转化为GradientDrawable对象,而不是ShapeDrawable, 也不是起类型对应的 OvalShape...GradientDrawable可以动态设置类型如下图所示,跟xml文件中类型android:shape的值一一对应。 ?...,中间夜色,结束颜色 GradientDrawable gradientDrawable = new GradientDrawable(GradientDrawable.Orientation.TOP_BOTTOM...动态改变GradientDrawable的属性 既然GradientDrawable都能动态创建,那么肯定能过动态修改,我们可以通过先获取view上设置的background drawable
还有些经验丰富的程序员告诉我们“负责任的工程师在离职前会删代码”也佐证了这一点,他们利用最后一段空闲时间,梳理程序的脉络,删除冗余的逻辑,让代码更加的清晰,方便接手的人维护。 ...在对后端代码梳理和优化后,发现了大量的冗余代码,以及不需要的过程,删除这些逻辑后,让storm程序能消耗qps高达3W的数据,并且例行任务也能按时完成了。...删除这些逻辑后,代码精神了不少 业务快速发展的时候,为了快速的完成任务,会有很多代码写的不是很友好,一段时间后,就很难维护了。这个时候就要采取措施,以免大规模风险爆发。...在代码构建或者维护过程中,都可以参考以下几点。 抽象公共库 将常用的方法和变量,抽象到公用库中,不仅可以减少代码量,也降低了维护成本。...公共库中的类,还更容易发现潜在的错误,因为该方法会被不同的人在不同场合review,增加了bug的曝光量 采用开源的库 和抽象公共库类似,只不过这些库不是自己写的,而是由公司的其他团队或者开源社区提供
和尚我最近遇到一个小需求,程序里面有个别页面,需要动态的调整某个页面的样式,包括一键变灰等效果。 以前页面是用 shape 和 drawable 之类实现的效果。...现在需要用 Kotlin/Java 代码实现动态修改。由于和尚我技术浅浅,仅整理一下遇到一些坑。 ---- 日常应用的样式: 1. 圆角边框 默认 shape.xml 方式: <?...bg.addState(new int[] {}, normal); return bg; } Tips: StateListDrawable 设置 View 绘制不同状态背景图片,和尚我测试中,...background = myGrad Tips: GradientDrawable 对象中,若设置四个圆角一致时,可设置 cornerRadius 属性;若设置部分圆角时,可设置 cornerRadii...Kotlin 代码效果 ? 一键灰度 GitHub 实例 ----
swof代码中的首页代码来示范 */public function index(): Response{ /** @var Renderer $renderer */ $renderer...return context()->getResponse()->withContentType(ContentType::HTML)->withContent($content);} 当我们想对上边的代码加一个运行时间是...,按照之前的写法,我们可能会写成这样: /** * @RequestMapping("/") * @throws Throwable */public function index(): Response...Controller\HomeController(41):string(16) "运行时间为:"float(2.058) 这样有个缺点就是,只是计算了当前$bengin_time与$end_time之间代码的运算时间...,并且我们修改了原方法,那么我们如何才能不通过修改源代码的方式,也能得到运算时间呢?
1、局部代码块 普通代码块就是直接定义在方法或语句中,以”{}”划定的代码区域,此时只需要关注作用域的不同即可,方法和类都是以代码块的方式划定边界的。..." + x); } int x = 99; System.out.println("代码块之外" + x); } } 运行结果: 2、构造代码块 直接定义在类中成员位置的代码块...,优先于构造方法执行,构造代码块用于执行所有对象均需要的初始化动作,每创建一个对象均会执行一次构造代码块。...this.age = age; System.out.println("Person(age)参数的构造函数执行"); } } public class PersonDemo{...静态代码块是定义在成员位置,使用static修饰的代码块。
我不喜欢fortran, 奇怪的词法规则(竟然不用空格分开token), io操作竟然是语言的一部分(这种非本质的东西像C那样用库来扩展多好) 。。。...i=1,num-1 call add_node(walk) walk=>walk%next end do end subroutine end program link 我很少讨厌某种技术,坦诚的说
除了之前已经提到的图形类,该源码重点使用了如下类,我们可以了解一下:Path、Matrix、ColorMatrix、GradientDrawable。...GradientDrawable其实就是shape图形的代码表示,有关shape的xml定义参见《Android开发笔记(八)神奇的shape》。...下面是GradientDrawable的常用方法说明: setGradientType : 设置渐变类型。...调用的代码如下 import com.example.exmturn.ui.PageWidget; import com.example.exmturn.ui.PageWidgetAdapter; import...点击下载本文用到的书籍翻页动画代码 点此查看Android开发笔记的完整目录
一般修改背景颜色直接set就行了, 当然如果背景是一个shape的话,直接set一个shape也行,如果不怕麻烦的话 但是在页面滑动的时候就需要动态的去修改shape的颜色了 GradientDrawable...mDrawable = (GradientDrawable)mImageView.getBackground(); mDrawable.setColor(ContextCompat.getColor
在java开发中,经常要做一个保存功能,该功能一般是如下这么写。...if(exists(object)){ update(object); }else { insert(object); } 上述代码是先查询存不存在,如果存在,就更新,不存在则插入....很多项目都有这种代码,按普通逻辑来说,这个没毛病。 但实际想想,那三行代码其实有优化的空间....优化如下: if(update(object)==0){ insert(object); } 上述代码先做一个更新记录,如果没更新到记录,则证明需要做插入动作,这样就省下了查询的动作,性能有了优化
WebGL 开发中的代码优化对于提升应用程序的性能至关重要,尤其是在移动设备和低端硬件上。优化可以减少 CPU 和 GPU 的负载,提高帧率,并改善用户体验。...以下是一些 WebGL 开发中常用的代码优化技巧。1. 减少绘制调用 (Draw Calls):合批 (Batching): 将使用相同材质和着色器的物体合并成一个绘制调用。...使用索引缓冲 (Index Buffer): 索引缓冲可以减少顶点数据的重复存储,提高渲染效率。顶点属性优化: 仅使用必要的顶点属性。例如,如果不需要法线信息,就不要在顶点数据中包含法线。4....使用 IL2CPP 脚本后端: IL2CPP 可以将 C# 代码转换为 C++ 代码,提高运行效率。使用 Addressables 或 AssetBundle 进行资源管理: 这可以减少资源加载时间。...通过以上优化技巧,可以显著提高 WebGL 应用程序的性能,提升用户体验。在实际开发中,需要根据具体的项目需求和性能瓶颈选择合适的优化方法。
因为异常大大地降低性能,所以您不应该将它们用作控制正常程序流程的方式。如果有可能检测到代码中可能导致异常的状态,请执行这种操作。不要在处理该状态之前捕获异常本身。...常见的方案包括:检查 null,分配给将分析为数字值的 String 一个值,或在应用数学运算前检查特定值。下面的示例演示可能导致异常的代码以及测试是否存在某种状态的代码。两者产生相同的结果。
从最后2行的输出来看,运行的是main.rs中的方法,即:main2.rs中的main函数,并未识别成入口,继续折腾,在src下创建目录bin,然后把main.rs以及main2.rs都移动到bin目录...可以先记一条规则 :如果模块x与main方法在一个.rs文件中,且x处于最外层,main方法可以调用x中的方法。...再微调下代码: mod a { //修改:去掉pub fn foo_a_2(){ println!...又是一条规则 :子模块可以调用父模块中的private函数,但是反过来是不行的 (通俗点讲:老爸的钱,就是儿子的钱,但是儿子的钱,除非儿子主动给老爸,否则还是儿子的!...注意main.rs的首二行: mod a; mod b; 与常规mod不同的是,mod x后,并没有{...}代码块,而是;号,rust会在同级目录下,默认去找x.rs,再来看main方法: fn main
也就是说,在代码实现的过程中,虽然我们实现的一个函数可能带有很多个变量,但是可以用偏函数的形式把其中一些不需要拆分和变化的变量转变为固有变量。比较典型的两个例子是计算偏导数和多进程优化。...虽然大部分支持自动微分的框架都有相应的支持偏导数的接口,多进程操作中也可以指定额外的args,但是这些自带的方法在形式上都是比较tricky的,感觉并不如使用偏函数优雅和简洁。...这里我们主要介绍python中可能会用到的偏函数功能--partial。 Partial简单案例 我们先来一个最简单的乘法函数 f(x,y)=xy 。...虽然在Jax的grad函数中,支持argnums这样的参数配置,但从代码层面角度来说,总是显得可读性并不好。...在这些相关的场景下,我们用partial函数更多时候可以使得代码的可读性更好,在性能上其实并没有什么提升。
领取专属 10元无门槛券
手把手带您无忧上云