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

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_46526828/article/details/111199954