autojs-Toolbar添加Menu按钮

简介: autojs-Toolbar添加Menu按钮

源码

/*
 * @Author: 大柒
 * @QQ: 531310591@qq.com
 * @Date: 2021-04-25 14:42:35
 * @Version: Auto.Js Pro
 * @Description:
 * @LastEditors: 牙叔
 * @LastEditTime: 2021-04-25 18:04:13
 */
"ui";
importClass(android.view.MenuItem);
importClass(android.graphics.Bitmap);
importClass(android.graphics.BitmapFactory);
importClass(android.graphics.drawable.ColorDrawable);
importClass(android.graphics.drawable.BitmapDrawable);
const resources = context.getResources();
const scale = resources.getDisplayMetrics().density;
const MENU_CONFIRM = 17;
ui.layout(
  <vertical>
    <appbar>
      <toolbar id="toolbar" title="ToolBar" subtitle="大柒Se7en" />
    </appbar>
  </vertical>
);
let mToolbar = ui.toolbar;
let bmp = images.read("海贼王全体照片.png").getBitmap();
mToolbar.setBackgroundDrawable(new BitmapDrawable(bmp));
activity.setSupportActionBar(mToolbar);
// menu.add方法的参数:
// 第一个int类型的groupID参数,代表的是组概念,你可以将几个菜单项归为一组,以便更好的以组的方式管理你的菜单按钮。
// 第二个int类型的item ID参数,代表的是项目编号。这个参数非常重要,一个itemID对应一个menu中的选项。在后面使用菜单的时候,就靠这个item ID来判断你使用的是哪个选项。
// 第三个int类型的orderID参数,代表的是菜单项的显示顺序。默认是0,表示菜单的显示顺序就是按照add的显示顺序来显示。
// 第四个String类型的title参数,表示选项中显示的文字。
ui.emitter.on("create_options_menu", (menu) => {
  //添加按钮
  let item = menu.add(0, MENU_CONFIRM, 0, "启动");
  //指定按钮显示的位置
  item.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM | MenuItem.SHOW_AS_ACTION_WITH_TEXT);
  //获取指定大小的内置资源Drawable
  let mDrawable = getResDrawable("ic_play_arrow_black_48dp", 24);
  //图片着色
  mDrawable.setTint(colors.parseColor("#FFFFFF"));
  //设置item图标
  item.setIcon(mDrawable);
  item = menu.add(0, 2, 0, "艾斯");
  item.setIcon(getDrawable("海贼王/艾斯.jfif", 120));
  item.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM | MenuItem.SHOW_AS_ACTION_WITH_TEXT);
  item = menu.add(0, 3, 0, "白胡子");
  item.setIcon(getDrawable("海贼王/白胡子.jfif", 120));
  item.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM | MenuItem.SHOW_AS_ACTION_WITH_TEXT);
  return true;
});
function getDrawable(filePath, size) {
  size = size || 36;
  let oldBmp = images.read(filePath).getBitmap();
  let newBmp = Bitmap.createScaledBitmap(oldBmp, dp2px(size), dp2px(size), true);
  return new BitmapDrawable(newBmp);
}
ui.emitter.on("options_item_selected", (e, item) => {
  switch (item.getTitle()) {
    case "启动":
      toastLog("点击了启动");
      break;
    case "艾斯":
      toastLog("有个爱闯祸的弟弟,哥哥总是要特别担心");
      break;
    case "路飞":
      toastLog("我是要成为海贼王的男人");
      break;
    case "白胡子":
      toastLog("做我儿子吧");
      break;
  }
  e.consumed = true;
});
/**
 * 获取内置资源的Drawable
 * @param {*} resName
 * @param {*} size
 */
function getResDrawable(resName, size) {
  let oldBmp = BitmapFactory.decodeResource(resources, getResDrawableID(resName));
  let newBmp = Bitmap.createScaledBitmap(oldBmp, dp2px(size), dp2px(size), true);
  let drawable = new BitmapDrawable(resources, newBmp);
  oldBmp.recycle();
  return drawable;
}
/**
 * 获取内质资源 DrawableID
 * @param {*} name
 */
function getResDrawableID(name) {
  return resources.getIdentifier(name, "drawable", context.getPackageName());
}
/**
 * Dp转Px
 * @param {*} dp
 * @returns
 */
function dp2px(dp) {
  return parseInt(Math.floor(dp * scale + 0.5));
}
/**
 * Px转Dp
 * @param {*} px
 * @returns
 */
function px2dp(px) {
  return parseInt(Math.floor(px / scale + 0.5));
}


声明

部分内容来自网络

相关文章
|
6月前
|
Java Maven Android开发
Android弹出dialog提示框演示
Android弹出dialog提示框演示
57 1
|
5月前
|
XML Java Android开发
34. 【Android教程】菜单:Menu
34. 【Android教程】菜单:Menu
115 2
|
5月前
|
XML Java Android开发
15. 【Android教程】按钮 Button/ImageButton
15. 【Android教程】按钮 Button/ImageButton
75 2
|
Android开发
Android button 点击跳转页面
Android button 点击跳转页面
Android button 点击跳转页面
|
JavaScript 前端开发
11EasyUI 菜单与按钮- 创建菜单按钮(Menu Button)
11EasyUI 菜单与按钮- 创建菜单按钮(Menu Button)
65 0
|
Android开发
Android 中CheckBox复选框按钮的基本用法
Android 中CheckBox复选框按钮的基本用法
150 0
Android 中CheckBox复选框按钮的基本用法
|
XML Java 数据格式
Android_三种常用Menu菜单(附源码)
记录一下我写菜单的代码,我写了一共有三种菜单,从常用到不常用。
197 0
|
Android开发 容器
Android动态修改ToolBar的Menu菜单
Android动态修改ToolBar的Menu菜单 效果图 实现 实现很简单,就是一个具有3个Action的Menu,在我们滑动到不同状态的时候,把对应的Action隐藏了。
1788 0
|
Android开发
autojs-dialog对话框倒计时
牙叔教程 简单易懂
994 0
|
Android开发
android各种提示Dialog 弹出框
android各种提示Dialog 弹出框