Android开发Tips

 

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

Android

1. Download文件夹

绝对路径

/storage/emulated/0/Download/xxx
  • 1

遍历

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

  • 2

  • 3

  • 4

  • 5

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

  • 2

  • 3

  • 4

  • 5

  • 6

3. submodule的使用方法

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

git submodule add https://github.com/SpikeKing/DroidPlugin.git DroidPlugin
  • 1

使用

gitsubmoduleupdate--init--recursive
  • 1

导入, 路径多于一个, 前面不添加冒号(:).

include':app''DroidPlugin:project:Libraries:DroidPlugin'
  • 1

引用

compile project(':DroidPlugin:project:Libraries:DroidPlugin')
  • 1

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;}
  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

  • 11

  • 12

6. Canvas重绘

invalidate()参考.

7. 按钮的默认点击效果

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

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

继承样式

<!--按钮--><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>
  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

注意: @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(...);}
  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

9. 简化数据库的使用

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

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

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);    }
  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

  • 11

 

50000+
5万行代码练就真实本领
17年
创办于2008年老牌培训机构
1000+
合作企业
98%
就业率

联系我们

电话咨询

0532-85025005

扫码添加微信