Android进阶三部曲及涉及到的知识体系《刘望舒》第一部3

ToolBar与Palette

显示ToolBar控件先要在style中把ActionBar去掉

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">

        <item name="colorPrimary">@color/colorPrimary</item>

        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>

        <item name="colorAccent">@color/colorAccent</item>

</style>

<androidx.appcompat.widget.Toolbar
    android:id="@+id/main_id_toolbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="?attr/colorPrimary"
    android:minHeight="?attr/actionBarSize"/>
Toolbar toolbar = findViewById(R.id.main_id_toolbar);
setSupportActionBar(toolbar);

自定义Toolbar(结合Menu)

menu目录下创建xml

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">
    <item
        android:id="@+id/menu_search"
        android:orderInCategory="80"
        android:title="搜索"
        app:actionViewClass="android.widget.SearchView"
        app:showAsAction="ifRoom" />
    <item
        android:id="@+id/menu_share"
        android:orderInCategory="90"
        android:title="分享"
        app:showAsAction="ifRoom" />
    <item
        android:id="@+id/menu_settings"
        android:orderInCategory="100"
        android:title="设置"
        app:showAsAction="ifRoom" />
</menu>

DrawerLayout 抽屉布局

DrawerLayout drawerLayout = findViewById(R.id.main_id_draw_layout);
Toolbar toolbar = findViewById(R.id.main_id_toolbar);
ActionBarDrawerToggle actionBarDrawerToggle = new ActionBarDrawerToggle(
    this, drawerLayout, toolbar, "打开抽屉", "关闭抽屉");
drawerLayout.setDrawerListener(actionBarDrawerToggle);

Palette的应用

Andorid 5.x用Palette提取颜色从而让主题能够动态适应当前界面的色调,做到整个app颜色的基调和谐统一。

implementation 'com.android.support:palette-v7:23.0.1'
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher_background);
Palette.from(bitmap).generate(new Palette.PaletteAsyncListener() {
    @Override
    public void onGenerated(Palette palette) {
        // 获取充满活力的色调
        Palette.Swatch vibrantSwatch = palette.getVibrantSwatch();
        getSupportActionBar().setBackgroundDrawable(new ColorDrawable(vibrantSwatch.getRgb()));
    }
});

Android 6.0新特性 15年大会上

Android 6.0 Marshmallow 棉花糖 软件体验和运行性能大幅度的优化,设备续航时间提升30%.

变化点:

应用权限管理;Android pay;指纹支持;Doze电量管理;App Links;Now on Tap

应用权限管理:

PermissionsDspatcher框架的使用(基于apt技术)详情见github

Android 7.0新特性

2016年8月 推出了Android 7.0 Nougat(牛轧糖)

变化点:

多窗口模式,Data Saver(流量保护);改进的Java 8语言的支持;自定义壁纸;

快速回复;Daydream VR;后台省电;快速设置;Unicode9支持和全新的emoji表情符号;

Google Assistant

多窗口模式

禁用多窗口:android:resizeableActivity="false"

Android 8.0新特性

2017年 IO大会上 取名Andorid Oreo(奥利奥)

变化点:

通知中心

画中画(PIP)支持

自适应启动器图标

自动填充框架

自动调整TextView的大小

WebView API

多显示器支持

后台执行限制

Android 9.0新特性 取名Pistachio Ice Cream(开心果冰淇淋)

2018年 IO大会上

变化点:

权限支持全面屏

动画

机器学习

HDR VP9视频 HEIF图片压缩和Media API

利用wifi RTT进行室内定位 IEEE 802.11mc wifi协议 也成为wifi round-trip-time  rtt的平台支持

隐私权变更

对使用非sdk接口的限制

Android 10.0 Pie

2019年3月 对外发布beta1 与蓝本

变化点:

5G支持

可折叠设备

暗黑主题

手势导航

智能回复

用户隐私

ART优化

机器学习更新

Material Design其它控件:

Snackbar 底部吐司

TextInputLayout 嵌套一个Edittext

FloatingActionBar

TabLayout

AppBarLayout 一般将toolbar和tablayout包裹起来。

NavigationView实现抽屉菜单界面

CoordinatorLayout实现Toolbar的隐藏和折叠

CoordinatorLayout结合CollspaingToolbarLayout实现Toolbar的折叠效果

behavior的自定义学习

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值