Android UI——Material Design ——To
2019-02-25 本文已影响13人
So_ProbuING
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中一些活跃的颜色,其他控件通过设置这些颜色来优化界面色彩搭配。
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);