Android开发常用知识点

本博文主要记录Android开发中常用但是并不是常能记住的一些知识点,本文长期更新

9.png的知识

上方和左方黑线是控制拉伸范围的,左方和下方控制内容位置,当前可以不用设置左方和下方黑线,默认为上方和左方对应

判断字符串为null或者空字符串

以前使用

COPY
1
2
3
4
if(str == null || str.str.isEmpty())
​```或者其他第三方工具类来判断字符串是否为空,但是Android自己早就封装了一个
​``` java
TextUtils.isEmpty(str)

来判断字符串是否为null或空字符串。

计算文件大小

android.text.format.Formatter类中formatFileSize(Context, long)方法,用来格式化文件Size(B → KB → MB → GB)

模拟按钮的点击

view对象调用callOnClick(),performClick(),用于触发View的点击事件;performLongClick(),触发长按事件

显示密码

针对TextView(EditText是TextView子类)显示密码,通过setTransformationMethod方法可以显示

COPY
1
2
3
4
5
6
7
8
9
10
11
text.setTransformationMethod(new TransformationMethod() {
@Override
public void onFocusChanged(View view, CharSequence sourceText, boolean focused, int direction,
Rect previouslyFocusedRect) {

}
@Override
public CharSequence getTransformation(CharSequence source, View view) {
return source;
}
});
设置ListView和GridView快速滑动块是否可见

快速滑动块不同于滚动条,并不是滑动就会显示的,通过调用setFastScrollEnabled(boolean)来设置是否启用,前提是有足够的item来支持快速滑动

发送应用内广播

很多时候,广播并不想被其他程序收到,可以通过LocalBroadcastManager发送应用内广播

获取默认缓存路径
COPY
1
Context.getCacheDir();

获取缓存数据文件夹的路径,很简单但是知道的人不多,这个路径通常在SD卡上(这里的SD卡指的是广义上的SD卡,包括外部存储和内部存储)Adnroid/data/您的应用程序包名/cache/  下面.测试的时候,可以去这里面看是否缓存成功.缓存在这里的好处是:不用自己再去手动创建文件夹,不用担心用户把自己创建的文件夹删掉,在应用程序卸载的时候,这里会被清空,使用第三方的清理工具的时候,这里也会被清空。

时间格式化

DateUtils.formatDateTime() 用来进行区域格式化工作,输出格式化和本地化的时间或者日期

Dialog去除默认背景(主要是黑框和标题栏)
COPY
1
2
3
4
5
6
7
8
<style name="dialog" parent="@android:style/Theme.Dialog">
<item name="android:windowFrame">@null</item><!--边框-->
<item name="android:windowIsFloating">true</item><!--是否浮现在activity之上-->
<item name="android:windowIsTranslucent">false</item><!--半透明-->
<item name="android:windowNoTitle">true</item><!--无标题-->
<item name="android:windowBackground">@color/transparent</item><!--背景透明-->
<item name="android:backgroundDimEnabled">true</item><!--模糊-->
</style>

通过以上主题,Dialog会没有自带的一些东西

DialogFragment去除默认边框和标题栏

在onCreate方法中调用

COPY
1
setStyle(DialogFragment.STYLE_NO_FRAME, 0);

可以去除默认的边框和标题栏

double 保留2位小数以及添加千分号
COPY
1
private DecimalFormat df1 = new DecimalFormat("###,###.00");
Authorship: 作者
Article Link: https://raye.wang/2016/01/19/Android%E5%BC%80%E5%8F%91%E5%B8%B8%E7%94%A8%E7%9F%A5%E8%AF%86%E7%82%B9/
Copyright: All posts on this blog are licensed under the CC BY-NC-SA 4.0 license unless otherwise stated. Please cite Raye Blog !