Android UI——Material Design ——ToolBar Palette TableLayout

Material Design——ToolBar

ToolBar 简单来说就是是app的顶部导航,也在一些app中当做标题栏使用。由于在早期的开发中,不同的产品设计导致实现标题栏或者导航栏各个公司都比较混乱。Google于是规范了导航栏标题栏的规范。在3.0的API中加入了ActionBar作为导航和标题的通用规范。但是在后来随着版本的更新,ActionBar有一些弊端和不满足现在的App的设计。所以又在新的API中引入了新的控件ToolBar。由于公司项目的特性,了解Material Design的机会比较少。作为填坑,还是要补一下相关的知识的。

关于ToolBar

ToolBar的作用就是导航控件——可以显示标题、快捷操作按钮、菜单等。ToolBar不一定放在顶部 放在底部也可以
ToolBar其实就是一个容器,可以像一个容器一样拜访子控件,可以拜访布局

来源:android.support.v7.widget.Toolbar

ToolBar的使用

  • 引入v7包
    implementation 'com.android.support:appcompat-v7:28.0.0'
  • 布局文件
 <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="?attr/colorPrimary"
       //导航按钮图标
        app:navigationIcon="@mipmap/ic_launcher"
        //标题栏logo
        app:logo="@android:mipmap/sym_def_app_icon"
        //子标题
        app:subtitle="旅行"
        //标题
        app:title="网易新闻"
        app:titleTextColor="@android:color/white">
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="textView" />
    </android.support.v7.widget.Toolbar>
  • Activity中
public class MainActivity extends AppCompatActivity {

    private Toolbar toolbar;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        toolbar = ((Toolbar) findViewById(R.id.toolbar));
        setSupportActionBar(toolbar);
        //点击监听
        toolbar.setNavigationOnClickListener((View v)->{
            finish();
        });

    }
}

SearchView

搜索控件
属于supportv7包中

Palette 调色板

作用可以在一张图片里面分析出一些色彩的特性:主色调、鲜艳的颜色、柔和的颜色等等

Palette是调色版的意思,用它能获取到Bitmap中一些活跃的颜色,其他控件通过设置这些颜色来优化界面色彩搭配。

《Android UI——Material Design ——ToolBar Palette TableLayout》 image

引入

    implementation 'com.android.support:palette-v7:28.0.0'

使用

  • 调用Palette.from() 方法将bitmap传入,然后在回调中获取颜色值。
Palette.from(bitmap).generate((palette1 -> {
            tv_title.setBackgroundColor(palette1.getLightVibrantColor(Color.BLACK));

        }));

API

// 获取到柔和的深色的颜色(可传默认值)
 palette.getDarkMutedColor(Color.BLUE);
 // 获取到活跃的深色的颜色(可传默认值)
 palette.getDarkVibrantColor(Color.BLUE);
 // 获取到柔和的明亮的颜色(可传默认值)
 palette.getLightMutedColor(Color.BLUE);
 // 获取到活跃的明亮的颜色(可传默认值)
 palette.getLightVibrantColor(Color.BLUE);
 // 获取图片中最活跃的颜色(也可以说整个图片出现最多的颜色)(可传默认值)
 palette.getVibrantColor(Color.BLUE);
 // 获取图片中一个最柔和的颜色(可传默认值)
 palette.getMutedColor(Color.BLUE);
    原文作者:So_ProbuING
    原文地址: https://www.jianshu.com/p/0c23ad048a60
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞