<p>关于Material Design 的各种详细的介绍,极客学院的wiki写的非常清楚了:<br><a href="http://wiki.jikexueyuan.com/project/material-design/">http://wiki.jikexueyuan.com/project/material-design/</a><br> 那么我们现在就开始撸代码<br></p>
<div class="image-package">
<div class="image-container">
<div class="image-container-fill"></div>
<div class="image-view">
<img alt="7753368-e928ddce65b353dc.png" src="https://201907.oss-cn-shanghai.aliyuncs.com/cs/5606289-1c05395949a3082a86ae1fd5eed07d22.png">
</div>
</div>
<div class="image-caption">
本文目录
</div>
</div>
<p></p>
<h1>1.控制项目全局样式</h1>
<p>1.1 无论是使用AS还是ADT,都要引入appcompat-v7,AS使用下面这一句代码引入,解决Android碎片化开发的问题,碎片化开发,就是在不同版本上的UI,看起来不会有太大的区别。</p>
<pre class="blockcode"><code>implementation 'com.android.support:appcompat-v7:26.1.0'
implementation 'com.android.support:design:26.1.0'
</code></pre>
<p>1.2 写自己的全局样式:</p>
<pre class="blockcode"><code> <!--
Base application theme, dependent on API level. This theme is replaced
by AppBaseTheme from res/values-vXX/styles.xml on newer devices.
-->
<style name="AppBaseTheme" parent="Theme.AppCompat.Light">
<!--
Theme customizations available in newer API levels can go in
res/values-vXX/styles.xml, while customizations related to
backward-compatibility can go here.
-->
</style>
<!-- Application theme. -->
<style name="AppTheme" parent="AppBaseTheme">
<!-- All customizations that are NOT specific to a particular API-level can go here. -->
<item name="android:textColor">@color/mytextcolor</item>
<item name="colorPrimary">@color/colorPrimary_pink</item>
<item name="colorPrimaryDark">@color/colorPrimary_pinkDark</item>
<item name="android:windowBackground">@color/background</item>
<item name="colorAccent">@color/accent_material_dark</item>
<!-- 设置虚拟导航栏背景颜色 5.x新特性-->
<item name="android:navigationBarColor">@color/colorPrimary_pink</item>
</style>
</code></pre>
<p>AppTheme相当于AppBaseTheme的子类,在AppTheme中设置各种颜色,样式的配置。其中:<br> colorPrimary:主色,<br> colorPrimaryDark:主色--深色,一般可以用于状态栏颜色、底部导航栏<br> colorAccent:代表各个控件的基调颜色--CheckBox、RadioButton、ProgressBar等<br> android:textColor:当前所有的文本颜色</p>
<h1>2. v7包中有很多控件,都是为兼容而生的,在各个版本中运行的外观并没有太大的区别。</h1>
<p>2.1 AlertDialog:<br> android.app包中的AlertDialog:在不同的版本上显示样式是不一样的,在4.1下显示是这样的:</p>
<br>
<div class="image-package">
<div class="image-container">
<div class="image-container-fill"></div>
<div class="image-view">
<img alt="7753368-b8c0212b6899cf36.png" src="https://201907.oss-cn-shanghai.aliyuncs.com/cs/5606289-d32635fed400fb3982dff3c9b3319103.png">
</div>
</div>
<div class="image-caption">
传统对话框
</div>
</div>
<br>
<p>8.0下显示是这样的:</p>
<br>
<div class="image-package">
<div class="image-container">
<div class="image-container-fill"></div>
<div class="image-view">
<img alt="7753368-39704ae847730636.png" src="https://201907.oss-cn-shanghai.aliyuncs.com/cs/5606289-ced8cf7b90ffafad67bbf757d4ae2b3c.png">
</div>
</div>
<div class="image-caption">
传统对话框
</div>
</div>
<p>而android.support.v7.app包下的AlertDialog,在4.1和8.0下显示基本相同。</p>
<br>
<div class="image-package">
<div class="image-container">
<div class="image-container-fill"></div>
<div class="image-view">
<img alt="7753368-08485793bc3e5b1c.png" src="https://201907.oss-cn-shanghai.aliyuncs.com/cs/5606289-d3d0ea1775a6d9ad71bde2fe0054a826.png">
</div>
</div>
<div class="image-caption">
Android 8.0下V7对话框
</div>
</div>
<br>
<div class="image-package">
<div class="image-container">
<div class="image-container-fill"></div>
<div class="image-view">
<img alt="7753368-954da4bfa87e0b41.png" src="https://201907.oss-cn-shanghai.aliyuncs.com/cs/5606289-ce9f9ebdcf180bba52e70b38d0310790.png">
</div>
</div>
<div class="image-caption">
Android 4.1下 V7对话框
</div>
</div>
<p>可以看到,基本上是一样的。</p>
<p>2.2 下拉刷新 SwipeRefreshLayout</p>
<pre class="blockcode"><code> srl.setColorSchemeColors(Color.YELLOW,Color.RED,Color.GREEN);//设置进度条的颜色
srl.setProgressBackgroundColorSchemeColor(Color.WHITE);//设置背景颜色
srl.setDistanceToTriggerSync(100);//下拉多少距离开始刷新
srl.setSize(SwipeRefreshLayout.DEFAULT);//设置进度条的大小
srl.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() {
/ |
|