在Android Studio中添加本地库文件
1. 新建Module 选择File / New / New Module…,如图1。 在打开的窗口中,选择Import .JAR/.AAR Package,如图2。 选择本地库文件,点击Finish,如图3。 2. 添加Module 在工程上点击右键,选择Open Module Settings,如图4 在左边Modules下选择要把库添加到的目标Module,这…
Read more
learn, build, evaluate
1. 新建Module 选择File / New / New Module…,如图1。 在打开的窗口中,选择Import .JAR/.AAR Package,如图2。 选择本地库文件,点击Finish,如图3。 2. 添加Module 在工程上点击右键,选择Open Module Settings,如图4 在左边Modules下选择要把库添加到的目标Module,这…
Read more
App Widget可以使用RemoteViewsService来展示集合数据,下面在Android App Widget实现举例的基础上,创建一个电影海报列表的Widget,效果如图1所示。 1. 创建布局 App Widget可用的Collection View有一下几种: ListView GridView StackView AdapterViewFlipper 这里使用Sta…
Read more
在创建App Widget时,经常需要下载图片资源并显示到Widget上,下面给出几种下载并在RemoteViews中显示图片的方法。 1. 直接下载 直接下载图片会比较耗时,注意不要放在Main Thread。对于更新Widget的场景,可以在IntentService中下载并显示图片。 URL url = new URL(imageUrl); HttpURLConnection con…
Read more
App Widget是可以嵌入在其他应用(通常是主屏幕)的小型应用,接受定时的更新。创建一个App Widget,至少需要: AppWidgetProviderInfo:使用xml描述Widget,如Widget的尺寸、布局、更新频率等。 AppWidgetProvider:定义了与Widget进行交互的基本方法。 View Layout:Widget对应的布局。 下面通过一个例子说明如何…
Read more
barcodescanner是一个基于ZXing和ZBar的条码扫描View,使用起来非常简单和方便。 1. 安装 首先在build.gradle加入依赖: compile 'me.dm7.barcodescanner:zxing:1.8.4' 2. 加入相机权限 在AndroidManifest.xml中加入相机权限: <uses-permission an…
Read more
OS X的Chrome和Firefox默认使用系统语言,且修改语言的选项不可用,或者没有提供设置选项。对于英文界面语言的浏览器,在使用印象笔记的剪藏插件时,该插件会自动根据浏览器语言而切换到国际版的Evernote。该插件没有提供换区选项,无法手动切换到国内的印象笔记进行剪藏。此时需要修改浏览器语言为中文,才能使用国内版的印象笔记来保存剪藏。 1. 修改Chrome界面语言 官方给出修改C…
Read more
在一些包含敏感消息的应用中,希望能够禁用系统的截图功能,方法很简单,只需使用FLAG_SECURE 即可: @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); getWindow().setFlags(WindowManager.LayoutParams…
Read more
butterknife是一个可以简化Android中View的绑定的开源库,它通过注解处理(annotation processing)自动生成样板文件,省去了人工编写的麻烦。使用butterknife只需在Gradle中加入: compile 'com.jakewharton:butterknife:7.0.1' 官方站点的已经给出了详细的使用方法。通过ButterK…
Read more
有时候ListBox中item的内容长度超出了ListBox的范围,使得item内容显示不完整。为了能看到item的完整内容,又不想使用滚动条的话,可以使用ToolTip来为item添加一个提示信息,当item内容长度超过ListBox的宽度时,在鼠标旁边显示item的完整内容。 获取item宽度可以使用如下的方法: Graphics g = listbox.CreateGraphics(…
Read more
ContentProvider将数据封装起来,对外提供统一的接口,使得对数据的访问独立于数据的存储方式(文件、数据库等)。ContentProvider还提供跨应用的数据访问能力,并可以通过Search Framework实现自定义的搜索建议。可以参考这里来决定是否使用ContentProvider。 下面例子在RecyclerView使用方法举例(1)的基础上,展示ContentProv…
Read more