Monthly Archive: 1 月 2016

使用butterknife简化View的绑定

  butterknife是一个可以简化Android中View的绑定的开源库,它通过注解处理(annotation processing)自动生成样板文件,省去了人工编写的麻烦。使用butterknife只需在Gradle中加入: compile 'com.jakewharton:butterknife:7.0.1'   官方站点的已经给出了详细的使用方法。通过ButterK…
Read more

C#获取ListBox中item的宽度

  有时候ListBox中item的内容长度超出了ListBox的范围,使得item内容显示不完整。为了能看到item的完整内容,又不想使用滚动条的话,可以使用ToolTip来为item添加一个提示信息,当item内容长度超过ListBox的宽度时,在鼠标旁边显示item的完整内容。   获取item宽度可以使用如下的方法: Graphics g = listbox.CreateGraphics(…
Read more

ContentProvider实现举例

  ContentProvider将数据封装起来,对外提供统一的接口,使得对数据的访问独立于数据的存储方式(文件、数据库等)。ContentProvider还提供跨应用的数据访问能力,并可以通过Search Framework实现自定义的搜索建议。可以参考这里来决定是否使用ContentProvider。   下面例子在RecyclerView使用方法举例(1)的基础上,展示ContentProv…
Read more

为View的切换添加过渡动画

  动画效果不仅可以使得应用更加吸引人,更可以突出变化的内容,使得用户能够更好地理解应用的操作和运作方式。Android提供了Transitions Framework来为View层级之间的切换添加过渡效果,最低需要API level 19。下面通过一个例子说明如何 添加过渡动画。   例子以在Android上实现Master/Detail Flow为基础,最终实现效果如下: 1. 添加Trans…
Read more

在Android上实现Master/Detail Flow

  Master/Detail Flow包含Master和Detail两个页面,Master页面显示包含了若干项目(item)的列表,给出各个项目的大概信息。当点击某个项目时,包含了该项目详细信息的Detail页面会显示出来。这种模式的一个优势在于,可以方便地适配不同的屏幕尺寸:手机屏幕尺寸有限,一般一次只能展示一个页面,那么首先显示Master,当用户点击感兴趣的项目时,再将该项目的Detail…
Read more

使用CursorLoader及更新RecyclerView

  RecyclerView目前还处在“heavy development”的阶段,一些功能仍有待完善。例如ListView可以使用CursorAdapter和CursorLoader,很方便地从ContentProvider获取并更新数据,而RecyclerView并不提供类似CursorAdapter的功能。下面的例子通过从系统通讯录中读取并显示联系人信息,展示了使用CursorLoader更…
Read more

RecyclerView使用方法举例(2)

  本文紧接着RecyclerView使用方法举例(1),继续介绍RecyclerView的一些用法。 1. 自定义ItemDecoration分隔item 1.1. 实现SpacesItemDecoration   可以通过加入自定义ItemDecoration的方式,为RecyclerView中的item添加装饰。如下面的SpacesItemDecoration为item四周添加指定的间距。 …
Read more