android材料设计层次,Android材料设计之ToolBar+CardView

66b52468c121889b900d4956032f1009.png

8种机械键盘轴体对比

本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选?

皑如山上雪,皎若云间月。

ToolBar

常用属性1

2

3

4

5

6背景------android:background="@color/yase"

阴影------android:elevation="@dimen/dp_4"

图标------app:logo="@drawable/icon_love"

返回图标--app:navigationIcon="@drawable/icon_a"

标题------app:title="捷特"

副标题----app:subtitle="天下无双"基本使用1

2

3

4

5

6

7

8

9

10

11

android:id="@+id/id_toolbar"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:background="@color/yase"

android:elevation="@dimen/dp_4"

app:logo="@android:drawable/ic_delete"

app:navigationIcon="@android:drawable/ic_dialog_email"

app:subtitle="副标题"

app:title="标题">

设置标题和导航键的颜色1@android:color/holo_orange_dark

副标题的颜色1@android:color/white

设置菜单

新建menu文件夹->新建.menu文件1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

xmlns:app="http://schemas.android.com/apk/res-auto">

android:id="@+id/test_menu1"

android:icon="@android:drawable/ic_menu_more"

android:title="测试1"

app:showAsAction="never"/>

android:id="@+id/test_menu2"

android:icon="@android:drawable/ic_menu_month"

android:title="测试2"

app:showAsAction="never"/>

android:id="@+id/test_menu3"

android:icon="@android:drawable/ic_menu_slideshow"

android:title="测试3"

app:showAsAction="never"/>

如果菜单中的文字要显示到ToolBar上,想让给这些文字设置字体颜色1@android:color/holo_blue_bright

给菜单设置点击事件、给navigation图标设置点击事件1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25//引入布局

public boolean (Menu menu){

getMenuInflater().inflate(R.menu.menu_toobar, menu);

return true;

}

//点击事件

public boolean onOptionsItemSelected(MenuItem item){

switch (item.getItemId()) {

case android.R.id.home:

Toast.makeText(MainActivity.this, "点击了navigation图标...", Toast.LENGTH_SHORT).show();

break;

case R.id.test_menu1:

ToastUtils.showMessage(MainActivity.this, "Test1");

break;

case R.id.test_menu2:

ToastUtils.showMessage(MainActivity.this, "Test2");

break;

case R.id.test_menu3:

ToastUtils.showMessage(MainActivity.this, "Test3");

break;

}

return super.onOptionsItemSelected(item);

}设置溢出菜单图标:1id_toolbar.setOverflowIcon(getResources().getDrawable(R.mipmap.ic_launcher));修改溢出菜单文字及字体大小,同时也会修改自定义View字体大小,及Toolbar上ActionMenu文字的大小1

2@android:color/holo_purple

25dp修改溢出菜单的背景,摆放位置,从系统Overflow样式知道其实就是修改对应属性的值即可

上代码1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21为ToolBar引入的主题

@android:color/holo_orange_dark

@android:color/white

@android:color/holo_red_dark

@android:color/holo_purple

25dp

为ToolBar popular引入的主题

false

wrap_content

5dp

@android:color/holo_orange_dark

5dip

0dip

具体的代码引入1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

android:id="@+id/id_toolbar"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:background="@color/yase"

android:elevation="@dimen/dp_4"

app:logo="@android:drawable/ic_delete"

app:navigationIcon="@android:drawable/ic_dialog_email"

app:popupTheme="@style/AppTheme.PopupOverlay"

app:subtitle="副标题"

app:theme="@style/AppTheme.AppBarOverlay"

app:title="标题">

android:id="@+id/tv"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_gravity="center"

android:text="标题"/>

CardView常用的属性1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17app:cardBackgroundColor 背景颜色

app:cardCornerRadius 圆角大小

app:cardElevation z轴阴影高度

app:cardMaxElevation z轴最大高度值

app:contentPadding 内容与边距的间隔

app:contentPaddingLeft 内容与左边的间隔

app:contentPaddingTop 内容与顶部的间隔

app:contentPaddingRight 内容与右边的间隔

app:contentPaddingBottom 内容与底部的间隔

app:paddingStart 内容与边距的间隔起始

app:paddingEnd 内容与边距的间隔终止

app:cardUseCompatPadding 设置内边距,在API21及以上版本和之前的版本仍旧具有一样的计算方式

app:cardPreventConrerOverlap 在API20及以下版本中添加内边距,这个属性为了防止内容和边角的重叠

注意:CardView中使用android:background设置背景颜色无效。代码中使用1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31<?xml version="1.0" encoding="utf-8"?>

xmlns:android="http://schemas.android.com/apk/res/android"

xmlns:app="http://schemas.android.com/apk/res-auto"

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical"

android:padding="20dp">

android:layout_width="100dp"

android:layout_height="100dp"

android:clickable="true"

android:foreground="?android:attr/selectableItemBackground"

app:cardBackgroundColor="@color/yase"

app:cardCornerRadius="@dimen/dp_8"

app:cardElevation="@dimen/dp_4"

app:cardPreventCornerOverlap="false"

app:cardUseCompatPadding="true"

app:contentPadding="10dp">

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_gravity="center"

android:text="基本密码基本密码基本密码基本密码基本密码基本密码"

android:textSize="16dp"/>

具体属性的解释app:cardUseCompatPadding

e7b183a1f377bafb48901c5472436aff.png在5.0之前的版本中设置了 app:cardElevation=” “后 CardView 会自动留出空间供阴影显示,而5.0之后的版本中没有预留空间。

解决方法:

app:cardUseCompatPadding=”true”

让CardView在不同系统中使用相同的padding值,为阴影预留空间圆角问题

572a68d607d879439905a8ba69a79ee5.png在>=5.0(Lollipop API 21)的版本,CardView会直接裁剪内容元素满足圆角的需求.

在<5.0(Lollipop API 21)的版本,CardView为了使内容元素不会覆盖CardView的圆角,会添加一个padding,这样一来,如果CardView设置了背景颜色,就很难看了.

解决方法:给CardView设置该属性:1

2

3

4

5

6

7

8

9

10这条属性的意思是:是否阻止圆角被覆盖,默认为true

设为false后,padding效果就不存在了,同时圆角也被覆盖了

该属性对5.X设备没什么影响.

###### 设置涟漪

```Java

android:clickable="true"

android:foreground="?android:attr/selectableItemBackground"

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值