您的位置:首页 > 移动开发 > Android开发

Android有用代码片段01

2016-06-22 16:38 447 查看

1. Download文件夹

绝对路径
/storage/emulated/0/Download/xxx

遍历
File file = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS);
File[] files = file.listFiles();
for (int i = 0; i < files.length; ++i) {
Log.e(TAG, files[i].getAbsolutePath());
}

2. ButterKnife多参数

绑定多个参数
@OnClick({
R.id.dialog_dau_share_wx,
R.id.dialog_dau_share_wx_timeline,
R.id.dialog_dau_share_weibo,
R.id.dialog_dau_share_qq
})

3. submodule的使用方法

submodule与git可以保持实时同步.

添加
git submodule add https://github.com/SpikeKing/DroidPlugin.git DroidPlugin

使用
git submodule update--init --recursive

导入, 路径多于一个, 前面不添加冒号(:).
include':app', 'DroidPlugin:project:Libraries:DroidPlugin'

引用
compile project(':DroidPlugin:project:Libraries:DroidPlugin')

4. 更新Github的Fork库

参考

5. 检测App是否安装

使用PackageManager.
// 检查App是否安装privatebooleanappInstalledOrNot(String uri){
PackageManager pm = getPackageManager();
boolean app_installed;
try {
pm.getPackageInfo(uri, PackageManager.GET_ACTIVITIES);
app_installed = true;
} catch (PackageManager.NameNotFoundException e) {
app_installed = false;
}
return app_installed;
}

6. Canvas重绘

invalidate()参考.

7. 按钮的默认点击效果

波纹效果(5.0+), 阴影效果(5.0-).
android:background="?android:attr/selectableItemBackground"

继承样式
<!--按钮--><stylename="PersonInfoButton"parent="@android:style/ButtonBar">
<itemname="android:layout_width">@dimen/d80dp</item>
<item name="android:layout_height">@dimen/d32dp</item>
<item name="android:textSize">@dimen/d14sp</item>
</style>

注意: @android:style/ButtonBar

8. Proguard去除Log信息

默认删除log.i, .v, 可以指定删除.d, .e. 参考.
# 删除Log
-assumenosideeffects classandroid.util.Log{ *; }
-assumenosideeffects classandroid.util.Log{
publicstatic *** d(...);
publicstatic *** e(...);
}

9. 简化数据库的使用

在使用数据库时, 操作有些复杂, Sugar库简化使用方法. 参考.
compile 'com.github.satyan:sugar:1.3'

10. 点击被填充链接的EditView.

通过在结尾处添加一个不占位的空格("\u200B").
// 设置可以点击和编辑的EditTextprivatevoidsetEditClickable() {
mEtEditText.setMovementMethod(LinkMovementMethod.getInstance());
Spannable spannable = new SpannableString("http://www.baidu.com");
Linkify.addLinks(spannable, Linkify.WEB_URLS);

// 添加了零宽度空格(​\u200B​​​), 才可以点击到最后的位置, 否则会触发链接
CharSequence text = TextUtils.concat(spannable, "\u200B");

mEtEditText.setText(text);
}


11。时间戳转换

SimpleDateFormat dateFm = new SimpleDateFormat("MM/dd/yyyy hh:mm:ss a",
Locale.ENGLISH);
1.出现错误有可能是因为Locale问题,比如用你的代码输出当前时间,后面得到了“午后”两个汉字。(我是中文系统)
2.HH 是 0-23  h  是0-12
这样就没有问题了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android