在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新特性学习第一篇就到这里了,希望大家喜欢。
源码下载
版权声明:本文为博主原创文章,未经博主允许不得转载。