当前位置: 代码迷 >> Android >> android5.0学习(1)
  详细解决方案

android5.0学习(1)

热度:279   发布时间:2016-04-27 23:48:28.0
android5.0学习(一)

在android5.0中增加了一些特性,之前很早的时候只是简单的学习了一个RecyclerView,今天的学习分为以下几个知识点:

Material Theme

在5.0中为我们增加了一个Material Theme,使用了该样式的应用,用户体验会更加的好。在android中,Material Theme主要分为以下三种:
1. @android:style/Theme.Material
2. @android:style/Theme.Material.Light
3. @android:style/Theme.Material.Light.DarkActionBar
下面是列出的所有样式:
这里写图片描述
这里写图片描述
先来看看如何使用Material Theme,其实很简单:
直接在application节点上增加样一个样式来替换原有的样式:

@android:style/Theme.Material

 <application        android:allowBackup="true"        android:icon="@mipmap/ic_launcher"        android:label="@string/app_name"        android:theme="@android:style/Theme.Material" >

这里写图片描述
可以看到默认的样式是比较偏黑色风格的,并且点击以后会有触摸反馈的效果。

@android:style/Theme.Material.Light

[email protected]:style/Theme.Material.Light样式的效果如下:
这里写图片描述

@android:style/Theme.Material.Light.DarkActionBar

[email protected]:style/Theme.Material.Light.DarkActionBar效果如下:
这里写图片描述
[email protected]:[email protected]淡。

自定义样式

[email protected]:style/Theme.Material,并且复写其中的一些样式属性来定义自己的样式,这里我以几个常见的属性为栗子:
这里写图片描述
这里我复写了下面这几种样式属性,并且每个值对应的预览效果都使用红线进行标注了。下面看下运行后的预览效果:
这里写图片描述
每个属性对应的效果,我都已经标注出来了,需要注意一点,在5.0之后将程序的启动图标放到了”mipmap”开头的文件夹中。

触摸的波纹效果

另外在5.0中还增加了下面这两种属性,分别用来设置不同的触摸反馈效果:
1. ?android:attr/selectableItemBackground
2. ?android:attr/selectableItemBackgroundBorderless
先看下效果:
这里写图片描述
上面的BTN1和BTN2分别对应第一和第二个属性,第三个是默认的效果

另外我们也可以在style.xml中增加android:colorControlHighlight这个属性来设置点击时候的反馈效果的颜色:

<style name="AppTheme" parent="@android:style/Theme.Material.Light">        <item name="android:colorControlHighlight">#ffbaffa8</item></style>

这里写图片描述

另外还可以使用”android:colorAccent”来设置checkbox等选中样式:

 <CheckBox        android:layout_width="90dp"        android:layout_height="60dp"        android:text="btn1"        android:background="?android:attr/selectableItemBackground"        /> <CheckBox        android:layout_width="90dp"        android:layout_height="60dp"        android:text="btn2"        android:background="?android:attr/selectableItemBackgroundBorderless"/> <CheckBox        android:layout_width="90dp"        android:layout_height="60dp"        android:text="btn3"/>

style.xml

 <style name="AppTheme" parent="@android:style/Theme.Material.Light">    <item name="android:colorControlHighlight">#ffbaffa8</item>    <item name="android:colorAccent">#f87569</item></style>

这里写图片描述

圆形显示隐藏

在android开发中,我们经常会用到显示和隐藏控件的API,在android5.0中为我们增加了一个ViewAnimationUtil.createCircularReveal方法,来控制控件的隐藏和显示,可以设置duration,所以看起来会有一个过程,象动画一样。先看下效果 :
这里写图片描述
上面三种动画效果分别对应如下代码:

  mSeven.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                    int centerX = mSeven.getWidth() / 2;                    int centerY = mSeven.getHeight() / 2;                    Animator animator =  ViewAnimationUtils.createCircularReveal(mSeven, centerX, centerY, mSeven.getWidth(), 0);                    animator.setDuration(3000);                    animator.setStartDelay(1000);                    animator.setInterpolator(new LinearOutSlowInInterpolator());                    animator.start();                    animator.addListener(new AnimatorListenerAdapter() {                        @Override                        public void onAnimationEnd(Animator animation) {                            super.onAnimationEnd(animation);                            //mSeven.setVisibility(View.INVISIBLE);                        }                    });            }        });        mThree.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                Animator animator = ViewAnimationUtils.createCircularReveal(                        mThree,                        0,                        0,                        0,                        (float) Math.hypot(mThree.getWidth(), mThree.getHeight()));                animator.setInterpolator(new LinearInterpolator());                animator.setDuration(2000);                animator.start();            }        });        mFour.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                int centerX = mSeven.getWidth() / 2;                int centerY = mSeven.getHeight() / 2;                Animator animator = ViewAnimationUtils.createCircularReveal(mFour,centerX,centerY,0,centerX);                animator.setDuration(3000);                animator.start();                animator.addListener(new AnimatorListenerAdapter() {                    @Override                    public void onAnimationEnd(Animator animation) {                        super.onAnimationEnd(animation);                        mFour.setVisibility(View.VISIBLE);                    }                });            }        });

看下createCircularReveal方法的参数:
这里写图片描述
view:对那个控件执行动画
centerX:动画的中心点所在横坐标
centerY:动画中心店所在纵坐标
startRadius:表示动画起始的半径
endRadius:表示动画结束的半径
比如:将第三个图片的起始和结束半径都进行更改:

Animator animator = ViewAnimationUtils.createCircularReveal(mFour,centerX,centerY,20,50);

此时效果改变如下:
这里写图片描述
可以看到起始动画和结束动画的半径都做了改变.

关于5.0新特性学习第一篇就到这里了,希望大家喜欢。
源码下载

版权声明:本文为博主原创文章,未经博主允许不得转载。

  相关解决方案