技术标签: android从xml动态创建控件
private void generateKeyBoard() {
Resources resources = getResources();
int numberSize = resources.getDimensionPixelSize(R.dimen.key_size);
int margin = resources.getDimensionPixelSize(R.dimen.keyboard_mt);
int deleteWidth = resources.getDimensionPixelSize(R.dimen.key_delete_width);
int length = mKeys.length;
for (int i = 0; i < length; i++) {
int row = i / 6;
int col = i % 6;
GridLayout.Spec rowSpec = GridLayout.spec(row); // 设置它的行和列
GridLayout.Spec columnSpec = GridLayout.spec(col, i == length - 1 ? 2 : 1);
GridLayout.LayoutParams params = new GridLayout.LayoutParams(rowSpec, columnSpec);
params.leftMargin = col != 0 ? margin : 0;
params.topMargin = row == 1 ? margin : 0;
params.height = numberSize;
Button number = (Button) LayoutInflater.from(this).inflate(R.layout.layout_number, mKeyBoard, false);
number.setTypeface(TypefaceUtil.getFont(this));
number.setText(mKeys[i]);
if (i != length - 1) {
params.width = numberSize;
} else {
params.width = deleteWidth;
number.setTextSize(resources.getDimension(R.dimen.textsize_48));
}
if(i == 0) number.requestFocus();
params.setGravity(Gravity.FILL);
number.setTag(i);
number.setLayoutParams(params);
number.setOnClickListener(this);
mKeyBoard.addView(number);
}
}
保存以做参考
注意点:
最后的删除占两个位置,所以GridLayout.Spec columnSpec = GridLayout.spec(col, 2);表示占两列的意思
也可以利用RecyclerView来实现,不过那个需要写的代码多了点,这只是个简单的需求,所以就用GridLayout来代替了,也还不错
本章目标视图和视图解析器 进行重定向和转发 Spring表单标签 REST CRUD什么是视图解析器SpringMVC用于处理视图最重要的两个接口是ViewResolver和View。ViewResolver的主要作用是把一个逻辑上的视图名称解析为一个真正的视图,SpringMVC中用于把View对象呈现给客户端的是View对象本身,而ViewResolver只是把逻辑视图名称...
如何实时查看mysql当前连接数? 1、查看当前所有连接的详细资料:./mysqladmin -uadmin -p -h10.140.1.1 processlist2、只查看当前连接数(Threads就是连接数.):./mysqladmin -uadmin -p -h10.140.1.1 status、查看当前所有连接的详细资料:mysqladmin
使用string的empty()函数判断字符串是否为空,但不能判断是不是“_ ”(_ 表示空格)或者连续空格“___”;此时可以使用
之前,我看过《乔布斯传》这本书籍,然后最近这几天在读《成为乔布斯》这本书籍。说实话,《成为乔布斯》确实比《乔布斯传》这本书写好的,所以,对于大家如果喜欢乔布斯,或者想读乔布斯相关书籍的同学,可以读一读《成为乔布斯》这本书。在读《成为乔布斯》的时候,我看到这么一段话:家酿计算机俱乐部成员对他俩(乔布斯和沃兹)的作品反应平平。电脑之所以有趣,是因为用户可以设计、组装自己的机器,这也是为什么俱乐部的名字...
腾讯云镜像站deb https://mirrors.tencent.com/debian/ bullseye main non-free contribdeb-src https://mirrors.tencent.com/debian/ bullseye main non-free contribdeb https://mirrors.tencent.com/debian-security/ bullseye-security maindeb-src https://mirrors.tencent
public double findMedianSortedArrays(int[] nums1, int[] nums2) { int m = nums1.length, n = nums2.length; //l 和 r 解决(m + n)奇偶性问题 int l = (m + n + 1) / 2; int r = (m...
转自 http://42.96.169.71/blog/2013/01/15/shi-yong-xcodejin-xing-dan-yuan-ce-shi/单元测试,是保证产品质量的一个好方法。 移动产品会经常的更新升级,每次版本更新的时候,都需要花费大量的精力来进行测试。 使用单元测试,则可以减少这类重复性的工作。 能够让测试变得更加自动化并且大幅提高测试的效率。 Xcode 为我们
Android中的硬件加速前言从andoroid 3.0开始,Android的2D渲染管线可以更好的支持硬件加速。硬件加速是使用GPU进行View上的绘制操作。硬件加速的级别applicationactivitywindowview为何有多级别的硬件加速硬件加速可以带啦性能的提升,为什么android不直接全部使用硬件加速,而是区别出来多级硬件加速呢?因为并不是所有的2D图形操作都支持硬件
在写代码的过程中,碰到一行代码不理解,去看了下源码,来记录下。mHandler.sendEmptyMessage(0);sendEmptyMessage这个方法之前没有碰到过,查阅源码后发现: /** * Sends a Message containing only the what value. * * @return Returns true
一、SlidingMenu简介 相信大家对SlidingMenu都不陌生了,它是一种比较新的设置界面或配置界面的效果,在主界面左滑或者右滑出现设置界面效果,能方便的进行各种操作。很多优秀的应用都采用了这种界面方案,像facebook、人人网、everynote、Google+等等。如下图所示: Google+界面效果图
parentElement 获取对象层次中的父对象。 parentNode 获取文档层次中的父对象。 childNodes 获取作为指定对象直接后代的 HTML 元素和 TextNode 对象的集合。 children 获取作为对象直接后代的 DHTML 对象的集合。 parentNode和parentElement功能一样,childNodes和children功能一样。但是parentNode和childNodes是符合W3C标准的,可以说比较通用。而另外两个只是...
php - Composer警告:缺少openssl扩展名。 如何在WAMP中启用尝试通过安装程序安装程序在Win7 / 64 + WampServer 2.2上安装Composer依赖关系管理工具,我收到以下消息:缺少openssl扩展,这将降低Composer的安全性和稳定性。 如果可能,您应该启用它或使用--with-openssl重新编译php所以这就是我所做的......从我在T...