神刀安全网

Android Tips

本文介绍一些, 在Android开发中会经常使用的小知识点, 每篇10个. 第一篇.

Android Tips

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

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

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

更新Github的Fork库

GitHub的教程, 参考 .

检测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;
}

Canvas重绘

参考函数 invalidate() .

参考 .

按钮的默认点击效果

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

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

继承样式

<!--按钮-->
<style name="PersonInfoButton" parent="@android:style/ButtonBar">
<item name="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

Proguard去除Log信息

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

# 删除Log
-assumenosideeffects class android.util.Log { *; }
-assumenosideeffects class android.util.Log {
public static *** d(...);
public static *** e(...);
}

简化数据库的使用

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

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

完全填充EditView

完全填充链接的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! Enjoy it.

原始地址:

http://www.wangchenlong.org/2016/03/23/1603/231-android-tips-1/

欢迎Follow我的 GitHub , 关注我的 简书 ,微博, CSDN , 掘金 .

我已委托“维权骑士”为我的文章进行维权行动. 未经授权, 禁止转载, 授权或合作请留言.

转载本站任何文章请注明:转载至神刀安全网,谢谢神刀安全网 » Android Tips

分享到:更多 ()

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
分享按钮