Android5.0和6.0常用技术

这篇博客详细介绍了Android 5.0和6.0中的Material Design相关技术,包括动态替换Theme、View的高度与阴影、轮廓、Palette的使用、水波纹动画、CardView、RecyclerView、ToolBar的使用,以及Android 6.0的新控件如TextInputLayout、FloatingActionButton、Snackbar、TabLayout和CoordinatorLayout。同时,还讨论了这些新特性的向下兼容性策略。
摘要由CSDN通过智能技术生成

1. 了解Material Design

2. 动态替换Theme

  • MaterialTheme配色方案:http://www.materialpalette.com
  • 动态替换Theme的步骤:
    • 定义至少2套theme
    • 在xml布局中给控件指定颜色时要使用占位符的方式,比如:
      android:textColor="?android:colorAccent"
    • 调用setTheme方法设置当前的theme,但是该方法要在setContentView之前,如:
      setTheme(mTheme);
      setContentView(R.layout.activity_main);
      
    • 设置了Theme,需要finish当前Activity,然后重启当前Activity,让Theme生效
      Intent intent = getActivity().getIntent();
      getActivity().finish();//结束当前的Activity
      getActivity().overridePendingTransition(0,0);//不要动画
      startActivity(intent);

3. View的高度与阴影,轮廓

  • 官网介绍:https://developer.android.com/intl/zh-tw/training/material/shadows-clipping.html
  • View增加了高度的概念,高度大的View会覆盖在高度小的View之上,并带有阴影效果:
    • View高度有2个因素组成:
      View高度 = elevation + translationZ
    • elevation表示view的高度,高度越大,阴影越大,可以在xml中直接使用属性, 也可以在代码中使用view.setEvelvation();
      android:elevation="10dp"
    • transtionZ属性表示view在Z方向移动的距离,一般用于属性动画中,translationZ也会影响View的高度,但是对阴影没有效,同时增加了改变translationZ的属性动画;
      android:translationZ="10dp"

4. View的轮廓与裁剪(在Android5.1以及以上才有效果)

  • 官网介绍:https://developer.android.com/intl/zh-tw/training/material/shadows-clipping.html
  • View增加了轮廓概念,轮廓会影响阴影的效果和裁剪的形状
    • View的轮廓默认是依据于background的,有其他3个取值:bounds,none,paddingBounds,可以通过outlineProvider属性更改:
      android:outlineProvider="bounds"
    • 可以通过setOutlineProvider()方法自定义轮廓:
      tv_blue.setOutlineProvider(new ViewOutlineProvider() {
              @TargetApi(Build.VERSION_CODES.LOLLIPOP)
              @Override
              public void getOutline(View view, Outline outline) {
                  outline.setOval(0,0,
                          view.getWidth(),view.getHeight());
              }
          });
  • View的裁剪是指将View按照轮廓裁剪
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值