博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
在低版本android系统上实现Material设计应用
阅读量:6587 次
发布时间:2019-06-24

本文共 2043 字,大约阅读时间需要 6 分钟。

hot3.png

​Material Design真的很好看,动画效果真的很实用。前面也写了一些文章介绍如何编写Material风格的程序,但是很多都是一些新的api,低版本上面没有这些api,我们没办法使用。但是不用气馁,google官方,以及一些大牛,给我们提供了一些程序,让我们在低版本上面可以实现Material风格的程序,这里就给大家介绍一下。

妹子图截屏

妹子图截屏

使用support library

使用support library最新的版本,appcomt21,可以在较低版本上面实现部分风格,在之前的文章我已经说过了,这里在系统的说一下。

####应用主题

这部分的话之前的文章说过,链接在这里:

使用gralde进行构建的话,在依赖中添加v7包:

dependencies {compile 'com.android.support:appcompat-v7:21.0.+'compile 'com.android.support:cardview-v7:21.0.+'compile 'com.android.support:recyclerview-v7:21.0.+'}

使用eclipse构建的话,加入最新的appcompat包即可。

另外在style文件中加入:

在appliaction中使用我们的这个Theme.MyTheme,上一次的文章中有个错误,这种情况下不需要在valus-v21中创建一个同名的继承自Material的theme,否则会报错。这样我们就可以使用Material风格了。不过低版本上面还是有很多地方不可以实现这种效果的。

使用Toolbar代替ActionBar。

android 5.0增加了ToolBar,可以用其代替ActionBar,在更低版本中,推荐使用,这样,动画特效更方便实现。

在布局文件中增加Toolbar:

在代码中,使用Toolbar代替ActionBar(Activity必须是继承自ActionBarActivity的):

@Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(getLayoutResource());        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);        if (toolbar != null) {            setSupportActionBar(toolbar);        }    }

使用CardView

不详说了,参看我之前的博客吧。

使用动画

对于低版本,在support v7包中,提供了一些兼容,可以使用activity过渡动画(不过效果没有5.0的好)。

首先声明主题的时候,创建一个AppTheme.Base用来声明主题,在其上增加动画属性:

以下放在values/themes.xml中,用于适配低版本:

以下放在values-v21/themes.xml中

在代码中启动新Activity的时候,使用v7包中的方法,具体过渡方法跟5.0一样,可以看我之前的博客:

ActivityOptionsCompat options = ActivityOptionsCompat.makeSceneTransitionAnimation(     activity, transitionView, DetailActivity.EXTRA_IMAGE);ActivityCompat.startActivity(activity, new Intent(activity, DetailActivity.class),options.toBundle());

使用开源控件

对于很多的控件样式,动画,对话框等,使用兼容包无法完成,我们可以使用一些大神开发的第三方包来实现.

组件:

上面两个主要是一些实现了Material的组件

Material Design的对话框:

这个github仓库收集了很多的开源实现,大家可以过来看看。

其他

根据提供的规范,自己来实现相应的ui界面以及动画效果等等。 这里提供一下谷歌的规范地址: 谷歌设计规范:、

图标素材:、

谷歌IO2014,Material Design的诠释:

其他人写的应用:

我写的一个应用,从之前的版本改过来,还没完成,大家随便看看就行了,也是Material Design:

原文地址:,转载请注明出处。

转载于:https://my.oschina.net/sammy1990/blog/345716

你可能感兴趣的文章
Python web爬虫
查看>>
Python捕捉命令输出、错误输出及赋值命令到变量的方法
查看>>
js解析json
查看>>
详解性能调优命令
查看>>
使用tar或dd等完成Linux系统备份恢复
查看>>
matlab的special函数用法
查看>>
函数指针和回调函数
查看>>
信号(signal)
查看>>
dns
查看>>
想打造一款成功的移动应用?你最需要关注性能指标!
查看>>
翻译 - 元编程动态方法之public_send
查看>>
ES6中的高阶函数:如同 a => b => c 一样简单
查看>>
C语言之枚举的定义以及测试
查看>>
35.函数介绍
查看>>
node主要应用场景是在大前端
查看>>
Linux的目录ls命令
查看>>
JDBC-简单连接Oracle Database
查看>>
mysql小问题集锦
查看>>
集群tomcat+session共享
查看>>
类火墙的iptables
查看>>