源码
/* * @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)); }
声明
部分内容来自网络