autojs自定义下拉框
牙叔教程 简单易懂
使用场景
自定义下拉框spinner
效果展示
git动图较大, 稍等片刻, 马上就好
autojs版本
8.8.12-0
萌新三连问
- 我要改背景
- 我要改字体颜色
- 我改了下拉框数据, 怎么颜色又变回去啦
疑问解答
spinner布局有两种
- 未展开之前的布局, 由
getView
生成 - 展开之后的布局, 由
getDropDownView
生成
修改颜色和背景就和普通的UI修改一样
修改数据之后, 颜色又变回去了, 这是因为没有重新设置adapter
代码讲解
1. 导入类
importClass(android.graphics.drawable.Drawable);
importClass("android.graphics.Rect");
importClass("android.graphics.NinePatch");
importClass("android.graphics.drawable.NinePatchDrawable");
importClass("android.graphics.BitmapFactory");
importClass("android.graphics.Bitmap");
2. 布局
ui.layout(<vertical id="parent"><text id="adv" marginTop="20" w="*" gravity="center" textSize="30sp" textStyle="bold"></text><button id="btn" margin="20">切换选项</button><spinner id="spinner" margin="36" entries="男|女|未知" /></vertical>
);
3.点击按钮, 切换数据
ui.btn.click(function () {var mCountries = ["中国", "美国", "日本"];setAdapter(ui.spinner, mCountries);
});
4. 设置下拉框默认数据
let dataList = ["牙叔教程111", "牙叔教程222", "牙叔教程333"];
setAdapter(ui.spinner, dataList);
//设置下拉框默认的显示第一项
ui.spinner.setSelection(1);
5. 获取九图背景
let filePath = "./bili.9.png";
filePath = files.path(filePath);
let drawable = imageOperations(filePath);
function imageOperations(filePath) {let bitmap = BitmapFactory.decodeFile(filePath);let chunk = bitmap.getNinePatchChunk();let npd = new NinePatchDrawable(context.getResources(), bitmap, chunk, new Rect(), null);return npd;
}
SpinnerAdapter
getDropDownView 展开后的布局
getView 展开之前的布局
function getAdapter(dataList) {let adapter = JavaAdapter(android.widget.SpinnerAdapter, {getCount: function () {return dataList.length;},getItem: function (position) {return dataList[position];},getItemId: function (position) {return position;},getViewTypeCount: function () {return 1;},getItemViewType: function (pos) {return 0;},getDropDownView: function (position, convertView, parent) {if (!convertView) {let boxXml = (<frame><TextView id="_text" paddingTop="33dp" gravity="center" textColor="#f44336" textSize="20sp" /></frame>);convertView = ui.inflate(boxXml);convertView.attr("bg", "#00ff0000");convertView.getChildAt(0).setBackgroundDrawable(drawable);}let item = dataList[position];convertView.getChildAt(0).setText(item);return convertView;},getView: function (position, convertView, parent) {if (!convertView) {let boxXml = <text id="name" textColor="#4caf50" gravity="center" textSize="20sp"></text>;convertView = ui.inflate(boxXml);}let item = dataList[position];convertView.setText(item);return convertView;},});return adapter;
}
完整源码
公众号回复 自定义下拉框
声明
部分内容来自网络
本教程仅用于学习, 禁止用于其他用途
bilibili
牙叔教程
微信公众号 牙叔教程
QQ群
747748653
autojs自定义下拉框相关推荐
- 【EasyUI篇】Combo自定义下拉框组件
微信公众号:程序yuan 关注可了解更多的教程.问题或建议,请公众号留言; 查看--> 全套EasyUI示例目录 20.Combo自定义下拉框组件 这组件不可以通过class方式进行定义 JSP ...
- Combo( 自定义下拉框) 组件
本节课重点了解 EasyUI 中 Combo(自定义下拉框)组件的使用方法,这个组件依赖于 ValidateBox(验证框)组件 一. 加载方式 自定义下拉框不能通过标签的方式进行创建. <in ...
- uniapp 自定义下拉框
uniapp 自定义下拉框 根据 https://gitee.com/kcren/uniapp-dropdown-filter/tree/master 自己加了一层封装 可以进行切换选择下拉内容 模板 ...
- 文本域 自定义下拉框 支持模糊检索 关键字高亮 上下选择
转载自:文本域 自定义下拉框 支持模糊检索 关键字高亮 上下选择 一.需求 需要创建一个常见问题库,填写存在问题时可以下拉选择,可以模糊搜索,也可以手写.如果选择了问题库中的内容,自动填充内容到存在问 ...
- css自定义下拉框样式
<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8" ...
- select美化自定义下拉框样式
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- jquery美化select,自定义下拉框样式
select默认的样式比较丑,有些应用需要美化select,在网上找到一个很好的美化样式效果,本人很喜欢,在这里分享一下. <!DOCTYPE html PUBLIC "-//W3C/ ...
- div自定义下拉框组件
因为原生的下拉框不能修改其属性,很难美化下拉框. 所以自己用div简单自定义了一下下拉框,想美化直接修改css即可 <!DOCTYPE html> <html lang=" ...
- winform 下拉框(自定义下拉框控件)
项目中遇到需要下拉框列表内容为线类型或点类型图形的需求,想到可以使用手绘线条和图形的方式来实现下拉列表内容自定义,记录下来供大家参考学习之用. 在项目中添加一个组件 添加完之后会显示如下设计界面 这里 ...
最新文章
- The number of object passed must be even but was [1]
- 为什么需要StringBuffer
- python扩展文件_1. 使用 C 或 C++ 扩展 Python
- 【数据结构与算法】单链表的Java实现
- 最新口绑查询HTML源码
- linux文件压缩包,linux目录文件压缩包操作
- 查询结果做缓存的例子
- 【搜狗拼音输入法 3.2 论坛版】
- python2.7安装教程win7_win7下python2.7安装 pip,setuptools的正确方法
- EDA技术实用教程 | 复习七 | 异步清零和同步清零的时序设计
- 凸多边形、凹多边形、凸包算法
- 用虚数i与欧拉公式来解释分数阶微积分
- linux卸载小企鹅输入法,Linux(FC)小企鹅输入法的安装
- 代码揭秘:从c/c++的角度探秘计算机系统,【C++】[代码揭秘:从C/C的角度探秘计算机系统]左飞.pdf...
- WMware虚拟化IntelVT-x/EPT或AMD-V/RVI(V)不能启用,导致AVD不能启动
- 1011 A+B 和 C (15分)(输出格式 数据类型范围)
- excel中地理坐标经纬度格式调整:保留两位小数
- word 2010 插入脚注 导致同页中的双栏换行
- 221003工作日志
- gtest学习笔记--2测试夹具(类)TEST_F