autojs颜色渐变效果

简介: 牙叔教程 简单易学使用场景颜色渐变

牙叔教程 简单易学


使用场景


颜色渐变


autojs版本

VersionPro8.7.6-0



原理

使用androidx自带的颜色工具类来混合颜色

代码讲解

1. 布局

ui.layout(
  <vertical gravity="center">
    <button id="渐变色">渐变色</button>
    <View id="view1" w="300dp" h="300dp"></View>
  </vertical>
);


2. 初始化变量
let view;
view = ui.view1;
let color1 = "#ff0000";
let color2 = "#00ff00";
view.attr("bg", color1);


3. 设置按钮点击事件
ui.渐变色.click(start);


具体函数

1. 创建handler

let mHandler = new Handler({
  handleMessage: function (msg) {
    let a = msg.arg1;
    if (a <= 500) {
      let message = mHandler.obtainMessage();
      message.arg1 = a + 1;
      mHandler.sendMessageDelayed(message, 1);
      let fraction = a / 500;
      let color = blendColors(colors.parseColor(color1), colors.parseColor(color2), fraction);
      view.attr("bg", colors.toString(color));
    }
    mHandler.handleMessage(msg);
    return true;
  },
});


2. handler发送消息
function start() {
  let msg = new Message();
  msg.arg1 = 0;
  mHandler.sendMessageDelayed(msg, 1);
}


3. 混合颜色
/**
 * 颜色渐变
 *
 * @param color1 起始颜色
 * @param color2 终止颜色
 * @param ratio 颜色变化频率 从0-1
 * @return 颜色值
 */
function blendColors(color1, color2, ratio) {
  return ColorUtils.blendARGB(color1, color2, ratio);
}


注意事项

1blendColors的颜色参数范围, 必须在Integer范围之内, 不可以用这种 0xffff0000,可能java里面能用, 但是js里面不可以
2ui.view.setBackgroundColor(color); 不管用,要用 view.attr("bg", colors.toString(color));代替
3控件的id名字不可以是 view, 因为ui.view是默认的根控件测试代码如下

"ui";
ui.layout(
  <vertical>
    <button>牙叔教程 简单易学</button>
  </vertical>
);
ui.post(function () {
  log(ui.view.getWidth());
  log(ui.view.getHeight());
  ui.view.attr("bg", "#ff00ff");
});


参考文章


1. Android颜色渐变效果


声明


部分内容来自网络



相关文章
|
前端开发 数据可视化 测试技术
autojs裁剪找图
牙叔教程 简单易
294 0
autojs帮我使用这个命令画圆
autojs帮我使用这个命令画圆
autojs之彩色按钮
作者: 牙叔 使用场景: 展示彩虹色的按钮
891 0
autojs之彩色按钮
|
Android开发
autojs之酷炫字体效果
使用场景 一个textview中, 展示不同的字体效果
358 1
|
缓存 Android开发
autojs放大镜
autojs放大镜
297 0
|
Android开发
剑气纵横-autojs动画
剑气纵横-autojs动画
159 0
|
Android开发
autojs一键换肤
牙叔教程 简单易懂
156 0
|
Android开发
autojs进度条
牙叔教程 简单易懂
578 0
|
人工智能 Android开发
autojs修改图片指定颜色
牙叔教程 简单易懂
653 0