欢迎Follow我的GitHub, 关注我的简书.

6b663027c371

Android

6b663027c371

Android

介绍一些, 在Android开发中, 会经常使用的小知识点. 第二篇参考.

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是否安装

private boolean appInstalledOrNot(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重绘

7. 按钮的默认点击效果

波纹效果(5.0+), 阴影效果(5.0-).

android:background="?android:attr/selectableItemBackground"

继承样式

@dimen/d80dp

@dimen/d32dp

@dimen/d14sp

注意: @android:style/ButtonBar

8. Proguard去除Log信息

默认删除log.i, .v, 可以指定删除.d, .e. 参考.

# 删除Log

-assumenosideeffects class android.util.Log { *; }

-assumenosideeffects class android.util.Log {

public static *** d(...);

public static *** e(...);

}

9. 简化数据库的使用

在使用数据库时, 操作有些复杂, Sugar库简化使用方法. 参考.

compile 'com.github.satyan:sugar:1.3'

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

通过在结尾处添加一个不占位的空格("\u200B").

// 设置可以点击和编辑的EditText

private void setEditClickable() {

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);

}

OK. That's all!

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐