Android笔记库(持续更新......)
1.设置TextView每行最大字数
android:singleLine="false".
android:maxEms
2.Android状态栏与背景图完美融合
1.非白色背景
参考博客
第一步
布局文件添加代码
android:fitsSystemWindows="true"
第二步, 在activity super.onCreate之后 setContentView之前添加代码
getWindow().getDecorView()拿到当前活动DecorView,再setSystemUiVisibility()改变系统UI的显示,View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN和View.SYSTEM_UI_FLAG_LAYOUT_STABLE就表示活动的布局会显示在状态栏上面,再将状态栏设置为透明色setStatusBarColor()
if (Build.VERSION.SDK_INT >= 21){
View decorView = getWindow().getDecorView();
decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
getWindow().setStatusBarColor(Color.TRANSPARENT);
}
案例
2.白色背景
这里存在一种情况就是你的背景为白色的时候,因为一般来说手机顶部的系统时间和图标都是白色的,这个时候背景也是白色就看不到系统时间和图标了(因为都是白色),这里我们就要用另外一种方法
参考博客
逻辑代码
protected boolean useThemestatusBarColor = true;//是否使用特殊的标题栏背景颜色,android5.0以上可以设置状态栏背景色,如果不使用则使用透明色值
protected boolean useStatusBarColor = false;//是否使用状态栏文字和图标为暗色,如果状态栏采用了白色系,则需要使状态栏和图标为暗色,android6.0以上可以设置
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setStatusBar();
}
private void setStatusBar() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
//5.0以上
View DecorView = getWindow().getDecorView();
int option = View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN //Activity全屏显示,且状态栏被覆盖掉
| View.SYSTEM_UI_FLAG_LAYOUT_STABLE; //SYSTEM_UI_FLAG_LAYOUT_STABLE
DecorView.setSystemUiVisibility(option);
if (useThemestatusBarColor) {
getWindow().setStatusBarColor(getResources().getColor(R.color.white));
} else {
getWindow().setStatusBarColor(Color.TRANSPARENT);
}
} else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
//44-5.0
WindowManager.LayoutParams layoutParams = getWindow().getAttributes();
layoutParams.flags = (WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS | layoutParams.flags); //状态栏透明
}
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && !useStatusBarColor) {
//6.0以上设置对文字状态栏设置为黑色,因为之前5.0我们设置为白色。
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
}
}
布局代码同理,父布局加上
android:fitsSystemWindows="true"
原来方法运行
现在方法运行
这里顺便介绍一下fragment
@Override
public void onHiddenChanged(boolean hidden) {
if (view != null) {
if (hidden) {
view.setFitsSystemWindows(false);
} else {
view.setFitsSystemWindows(true);
}
view.requestApplyInsets();
}
super.onHiddenChanged(hidden);
}
第一个默认显示的fragment可能还会出现被盖住的情况,只要在ragment所在activity所在布局的xml中添加
android:fitsSystemWindows="true"
3.快速讲解CardView的使用
4.修改全局字体
参考博客
第一步
创建application,然后在onCreate()放里面先初始化
Typeface mTypeface = Typeface.createFromAsset(getAssets(), "fonts/STKAITI.TTF");
try {
Field field = Typeface.class.getDeclaredField("MONOSPACE");
field.setAccessible(true);
field.set(null, mTypeface);
} catch (NoSuchFieldException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
第二步,在配置文件中声明application
第三步,进入application下的主题,添加代码
<item name="android:typeface">monospace</item>
运行
5.Android分享—调用系统自带的分享功能
欢迎大家提问和分享好方法奥,谢谢您的支持和阅读
博主为了可以学到更多的Android知识,创建了一个安卓知识交流群,欢迎大佬入群,当然也欢迎和我一样的安卓小白,我们可以一起交流,最重要的是快乐水群,记得定个小目标,冲击bat