autojs Material组件使用详解

简介: autojs Material组件使用详解

参考文章

Android Material组件使用详解


autojs还没多少人用Material组件, 今天看到别人写的Android Material组件使用详解, 用autojs来试试效果

环境

手机: Mi 11 Pro

Android版本: 11

Autojs版本: 9.0.10


源码

"ui";
$debug.setMemoryLeakDetectionEnabled(true);
engines.all().map((ScriptEngine) => {
  if (engines.myEngine().toString() !== ScriptEngine.toString()) {
    ScriptEngine.forceStop();
  }
});
importClass(android.view.ViewOutlineProvider);
importClass(android.content.res.ColorStateList);
importClass(com.google.android.material.shape.RelativeCornerSize);
importClass(com.google.android.material.shape.AbsoluteCornerSize);
importClass(com.google.android.material.shape.CornerFamily);
importClass(com.google.android.material.shape.ShapeAppearanceModel);
ui.layout(
  <vertical margin="30">
    <horizontal>
      <com.google.android.material.imageview.ShapeableImageView
        android:id="@+id/image"
        android:layout_width="110dp"
        android:layout_height="110dp"
        android:padding="0dp"
        margin="20dp"
        app:strokeColor="#ff0000"
        android:src="file://./yashu.png"
      />
      <com.google.android.material.imageview.ShapeableImageView
        android:id="@+id/image2"
        android:layout_width="110dp"
        android:layout_height="110dp"
        android:padding="0dp"
        margin="20dp"
        app:strokeColor="#ff0000"
        android:src="file://./yashu.png"
      />
    </horizontal>
    <horizontal>
      <com.google.android.material.imageview.ShapeableImageView
        android:id="@+id/image3"
        android:layout_width="110dp"
        android:layout_height="110dp"
        android:padding="0dp"
        margin="20dp"
        app:strokeColor="#ff0000"
        android:src="file://./yashu.png"
      />
      <com.google.android.material.imageview.ShapeableImageView
        android:id="@+id/image4"
        android:layout_width="110dp"
        android:layout_height="110dp"
        android:padding="0dp"
        margin="20dp"
        app:strokeColor="#ff0000"
        android:src="file://./yashu.png"
      />
    </horizontal>
    <horizontal>
      <com.google.android.material.imageview.ShapeableImageView
        android:id="@+id/image5"
        android:layout_width="110dp"
        android:layout_height="110dp"
        android:padding="0dp"
        margin="20dp"
        app:strokeColor="#ff0000"
        android:src="file://./yashu.png"
      />
      <com.google.android.material.imageview.ShapeableImageView
        android:id="@+id/image6"
        android:layout_width="110dp"
        android:layout_height="110dp"
        android:padding="0dp"
        margin="20dp"
        app:strokeColor="#ff0000"
        android:src="file://./yashu.png"
      />
    </horizontal>
    <horizontal>
      <com.google.android.material.imageview.ShapeableImageView
        android:id="@+id/image7"
        android:layout_width="110dp"
        android:layout_height="110dp"
        android:padding="0dp"
        margin="20dp"
        app:strokeColor="#ff0000"
        android:src="file://./yashu.png"
      />
      <com.google.android.material.imageview.ShapeableImageView
        android:id="@+id/image8"
        android:layout_width="110dp"
        android:layout_height="110dp"
        android:padding="0dp"
        margin="20dp"
        app:strokeColor="#ff0000"
        android:src="file://./yashu.png"
      />
    </horizontal>
  </vertical>
);
let imgView = ui.image;
let img = $images.read("./yashu.png");
ui.post(function () {
  imgView = ui.image;
  imgView.shapeAppearanceModel = ShapeAppearanceModel.builder()
    .setTopLeftCornerSize(50)
    .setTopRightCornerSize(50)
    .setBottomLeftCornerSize(50)
    .setBottomRightCornerSize(50)
    .build();
  imgView = ui.image2;
  imgView.shapeAppearanceModel = ShapeAppearanceModel.builder().setAllCorners(CornerFamily.ROUNDED, 100).build();
  imgView = ui.image3;
  imgView.shapeAppearanceModel = ShapeAppearanceModel.builder()
    .setTopLeftCorner(CornerFamily.CUT, RelativeCornerSize(0.3))
    .setTopRightCorner(CornerFamily.CUT, RelativeCornerSize(0.3))
    .setBottomRightCorner(CornerFamily.CUT, RelativeCornerSize(0.3))
    .setBottomLeftCorner(CornerFamily.CUT, RelativeCornerSize(0.3))
    .build();
  imgView = ui.image4;
  imgView.shapeAppearanceModel = ShapeAppearanceModel.builder().setAllCornerSizes(ShapeAppearanceModel.PILL).build();
  imgView = ui.image5;
  imgView.shapeAppearanceModel = ShapeAppearanceModel.builder()
    .setTopLeftCorner(CornerFamily.CUT, RelativeCornerSize(0.3))
    .setTopRightCorner(CornerFamily.CUT, RelativeCornerSize(0.3))
    .setBottomRightCorner(CornerFamily.CUT, RelativeCornerSize(0.3))
    .setBottomLeftCorner(CornerFamily.CUT, RelativeCornerSize(0.3))
    .setAllCornerSizes(ShapeAppearanceModel.PILL)
    .build();
  imgView = ui.image6;
  imgView.shapeAppearanceModel = ShapeAppearanceModel.builder()
    .setTopLeftCorner(CornerFamily.CUT, RelativeCornerSize(0.5))
    .setTopRightCorner(CornerFamily.CUT, RelativeCornerSize(0.3))
    .setBottomRightCorner(CornerFamily.CUT, RelativeCornerSize(0.3))
    .setBottomLeftCorner(CornerFamily.CUT, RelativeCornerSize(0.3))
    .build();
  imgView = ui.image7;
  imgView.shapeAppearanceModel = ShapeAppearanceModel.builder()
    .setTopLeftCorner(CornerFamily.CUT, RelativeCornerSize(0.5))
    .setTopRightCorner(CornerFamily.CUT, RelativeCornerSize(0.3))
    .setBottomRightCorner(CornerFamily.CUT, RelativeCornerSize(0.5))
    .setBottomLeftCorner(CornerFamily.CUT, RelativeCornerSize(0.3))
    .build();
  imgView = ui.image8;
  imgView.shapeAppearanceModel = ShapeAppearanceModel.builder()
    .setTopLeftCorner(CornerFamily.ROUNDED, RelativeCornerSize(0.5))
    .setTopRightCorner(CornerFamily.CUT, RelativeCornerSize(0))
    .setBottomRightCorner(CornerFamily.CUT, RelativeCornerSize(0))
    .setBottomLeftCorner(CornerFamily.CUT, RelativeCornerSize(0))
    .build();
});
function printObj(obj) {
  var arr = [];
  for (var k in obj) {
    arr.push(k);
  }
  arr.sort();
  log(arr);
}
events.on("exit", function () {
  img.recycle();
});


名人名言


思路是最重要的, 其他的百度, bing, stackoverflow, github, 安卓文档, autojs文档, 最后才是群里问问
--- 牙叔教程


声明


部分内容来自网络
本教程仅用于学习, 禁止用于其他用途


相关文章
|
Android开发
Autox.js 脚本开发环境搭建,从案例到打包apk(详细流程)
Autox.js 脚本开发环境搭建,从案例到打包apk(详细流程)
3388 0
Windows下的CMake下载与安装
Windows下的CMake下载与安装
Windows下的CMake下载与安装
|
4月前
|
自然语言处理 JavaScript 前端开发
一夜获千星!已获 1.7k+,Art Design Pro:Vue3 + Vite + TypeScript 打造的高颜值管理系统模板,这个让后端小哥直呼救命的后台系统
Art Design Pro 是一款基于 Vue 3、Vite 和 TypeScript 的高颜值后台管理系统模板,已获 1.7k+ 星标。项目专注于用户体验与视觉设计,支持主题切换、多语言、权限管理及图表展示等功能,内置常用业务组件,便于快速搭建现代化管理界面。其技术栈先进,开发体验流畅,适配多设备,满足企业级应用需求。项目地址:[GitHub](https://github.com/Daymychen/art-design-pro)。
613 11
|
资源调度 搜索推荐 Shell
使用VitePress静态网站生成器创建组件库文档网站并部署到GitHub
本文介绍了如何使用 Vue3、TypeScript 和 Vite 开发组件库并将其发布到 npm。文章详细描述了安装依赖、配置项目、创建文档网站以及编写组件文档的步骤。通过使用 VitePress,可以轻松搭建组件库的文档站点,并实现 Algolia 搜索功能。此外,还提供了自动化脚本用于部署静态网站至 GitHub 以及发布组件库到 npm。最后,展示了完整的目录结构和网站效果。
491 1
使用VitePress静态网站生成器创建组件库文档网站并部署到GitHub
|
网络协议 开发工具 网络虚拟化
SourceTree git 配置代理
SourceTree git 配置代理
472 1
|
存储 关系型数据库 数据库
超1/3中国500强企业都在用的「汇联易」,为什么选用阿里云RDS?
迎峰而上:汇联易依托阿里云RDS通用云盘,加速业务智能化升级
超1/3中国500强企业都在用的「汇联易」,为什么选用阿里云RDS?
|
存储 安全 应用服务中间件
解密Nginx限流机制:有效应对DDoS攻击与高并发流量
解密Nginx限流机制:有效应对DDoS攻击与高并发流量
490 0
|
前端开发
autojs优秀UI-自定义控件
牙叔教程 简单易懂
1131 0
|
安全 Windows
Windows 10 用户变量、系统变量等环境变量新建、编辑修改与删除方法
Windows 10 用户变量、系统变量等环境变量新建、编辑修改与删除方法
642 2
|
iOS开发
Flutter - 底部导航详解与案例示范
Flutter - 底部导航详解与案例示范
463 0

热门文章

最新文章