UI设计中,按钮一般都会有多个状态,比如:聚焦、点击等,不同的状态必须显示不同的呈现形式(比如颜色、形状的改变),这样用户才能感觉到按钮被成功选中、点击了,否则用户体验就会非常差了。
本篇文章就简单地描述一下Android开发中,如何动态改变Button状态切换时的背景。
Android的UI设计中,默认情况下,系统会为Button的点击实现一个默认的背景切换。
UI设计中,按钮一般都会有多个状态,比如:聚焦、点击等,不同的状态必须显示不同的呈现形式(比如颜色、形状的改变),这样用户才能感觉到按钮被成功选中、点击了,否则用户体验就会非常差了。
本篇文章就简单地描述一下Android开发中,如何动态改变Button状态切换时的背景。
Android的UI设计中,默认情况下,系统会为Button的点击实现一个默认的背景切换。
XML Bitmap是定义在XML文件当中,指向一个位图文件的资源。这样就为原生的位图文件起了一个别名。在XML定义时可以为位图定制诸如图像抖动或是平铺等额外属性。
文件存放位置:
res/drawable/filename.xml
要使用 ListView 实现一个充值方式选择,默认想选中第二项,搞了一下午,终于搞定了。原本就没怎么用 Java 写过 Android 应用,又隔了好久没写,一切都生疏了,半吊子变成大呆瓜了……
说起来也很简单,下面是 Layout 文件中的 ListView 定义:
1 | <ListView |
要实现比较好的用户体验,需要保持当前的ListView的位置。换句话说,如果我们能够随心所欲地指定ListView滚动的位置,那么这个问题就迎刃而解。
如果一个ListView太长,有时我们希望ListView在从其他界面返回的时候能够恢复上次查看的位置,这就涉及到ListView的定位问题
解决的办法如下:
1 | // 保存当前第一个可见的item的索引和偏移量 |
这里使用了setSelectionFromTop来定位ListView。其实还可以使用setSelection也可以定位,只是setSelectionFromTop要比setSelection更精准。因为通过getFirstVisiblePosition得到的第一个item可能已经有一部分是不可见的了,如果用setSelection无法反映出这不可见的部分。
本文主要介绍记录和恢复listView滚动位置的3种方法,记录listView滚动到的位置的坐标(推荐)、记录listView显示在屏幕上的第一个item的位置、通知适配器数据改变。
有时在view切换时,需要恢复listView之前滚动到的位置,鉴于网上已有资料说的都是第二种方法,而第二种方法本身在精确度上较差,自己找到了第一种方法分享下。