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文档, 最后才是群里问问
--- 牙叔教程


声明


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


相关文章
|
前端开发 程序员 开发工具
解决Material Theme UI插件收费问题
解决Material Theme UI插件收费问题
解决Material Theme UI插件收费问题
Flutter基础widgets教程-Tooltip篇
Flutter基础widgets教程-Tooltip篇
425 0
|
6天前
|
前端开发 API Android开发
Flutter最强大的图表库fl_chart的使用
Flutter最强大的图表库fl_chart的使用
26 1
|
7天前
|
开发者 Windows
Flutter笔记:Widgets Easier组件库(9)使用弹窗
Flutter笔记:Widgets Easier组件库(9)使用弹窗
19 3
|
7天前
|
开发者 容器
Flutter笔记:Widgets Easier组件库(3)使用按钮组件
Flutter笔记:Widgets Easier组件库(3)使用按钮组件
14 2
|
7天前
|
前端开发 UED 开发者
Flutter笔记:Widgets Easier组件库(1)使用各式边框
Flutter笔记:Widgets Easier组件库(1)使用各式边框
17 0
|
3月前
|
存储 前端开发 API
flutter 富文本思考
flutter 富文本思考
52 2
|
设计模式
flutter系列之:在flutter中自定义themes
一般情况下我们在flutter中搭建的app基本上都是用的是MaterialApp这种设计模式,MaterialApp中为我们接下来使用的按钮,菜单等提供了统一的样式,那么这种样式能不能进行修改或者自定义呢? 答案是肯定的,一起来看看吧。
|
前端开发
autojs优秀UI-自定义控件
牙叔教程 简单易懂
807 0
flutter系列之:Material中的3D组件Card
除了通用的组件之外,flutter还提供了两种风格的特殊组件,其中在Material风格中,有一个Card组件,可以很方便的绘制出卡片风格的界面,并且还带有圆角和阴影,非常的好用,我们一起来看看吧。
flutter系列之:Material中的3D组件Card