关于MD的学习记录(1)

最近望开发一款结合MD+litepal+OkHttp+GSON框架的APP。将写下一系列移植记录,文字翻译及代码均来自网上大神,本文章仅做了少量的删减:http://blog.csdn.net/ahence/article/details/46038721


首先学习Material Design,第一修改APP的Style。
Material Design 提供了一系列属性来自定义颜色主题,但是我们一般使用 5 个主要的属性来定义整体的主题风格。
colorPrimaryDark ——这是App深色调的基本颜色,主要用于通知栏背景。
colorPrimary ——这是App的主要颜色,用于工具栏背景。
textColorPrimary ——这是文本的主要颜色,用于工具栏标题。
windowBackGroud ——这是App的默认背景色。

navigationBarColor——这是底部导航栏的背景颜色。


本程序的开发环境为AS3.0,程序适应的最低版本为4.3。

1)在Android Studio中,通过菜单File-->New Project,填写必需的详细信息来创建一个新的工程,当提示选择一个默认的Activity时,选择Empty Activity,然后继续。

2)打开res-->values-->strings.xml,然后添加下面的string值。

<resources>
    <string name="app_name">Teach</string>
    <string name="action_settings">Settings</string>
    <string name="action_search">Search</string>
    <string name="drawer_open">Open</string>
    <string name="drawer_close">Close</string>

    <string name="nav_item_home">Home</string>
    <string name="nav_item_friends">Friends</string>
    <string name="nav_item_notifications">Messages</string>

    <!-- navigation drawer item labels  -->
    <string-array name="nav_drawer_labels">
        <item>@string/nav_item_home</item>
        <item>@string/nav_item_friends</item>
        <item>@string/nav_item_notifications</item>
    </string-array>

    <string name="title_messages">Messages</string>
    <string name="title_friends">Friends</string>
    <string name="title_home">Home</string>
</resources>

(3)打开res-->values-->colors.xml,然后添加下面的颜色值。如果你没有找到colors.xml文件,请创建一个名为colors.xml的资源文件。

colors.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="colorPrimary">#F50057</color>
    <color name="colorPrimaryDark">#C51162</color>
    <color name="textColorPrimary">#FFFFFF</color>
    <color name="windowBackground">#FFFFFF</color>
    <color name="navigationBarColor">#000000</color>
    <color name="colorAccent">#FF80AB</color>
</resources>

(4)在values文件夹里面,创建一个dimens.xml文件并填写如下内容

<resources>
    <!-- Default screen margins, per the Android Design guidelines. -->
    <dimen name="activity_horizontal_margin">16dp</dimen>
    <dimen name="activity_vertical_margin">16dp</dimen>
    <dimen name="nav_drawer_width">260dp</dimen>
</resources>

(5)打开res-->values中的style.xml文件,然后添加如下样式。在style.xml中定义的样式是所有Android版本中通用的,这里我将我的主题命名为MyMaterialTheme。

styles.xml

<resources>
    <style name="MyMaterialTheme" parent="MyMaterialTheme.Base">
    </style>

    <style name="MyMaterialTheme.Base" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="android:windowNoTitle">true</item>
        <item name="windowActionBar">false</item>       <!-- parent using DarkActionBar might bring a bug,but using NoActionBar is fine-->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
    </style>

</resources>

(6)现在,在res文件夹下,新建一个名为values-v21的文件夹。在values-v21文件夹里面,创建另一个style.xml文件并填写如下内容,这个style则是仅供Android Lollipop(5.0)使用的。

<resources>
    <style name="MyMaterialTheme" parent="MyMaterialTheme.Base">
        <item name="android:windowContentTransitions">true</item>
        <item name="android:windowAllowEnterTransitionOverlap">true</item>
        <item name="android:windowAllowReturnTransitionOverlap">true</item>
        <item name="android:windowSharedElementEnterTransition">@android:transition/move</item>
        <item name="android:windowSharedElementExitTransition">@android:transition/move</item>
    </style>
</resources>

(7)到这里我们已经准备好了基本的Material Design 样式。为了使用该主题,打开AndroidManifest.xml文件然后修改<application>标签中的android:theme属性:

android:theme="@style/MyMaterialTheme"

在应用了这个主题之后,你的AndroidManifest.xml文件应该是下面的样子:

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="edu.hdu.lyy.teach">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/MyMaterialTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

现在,如果你运行App,你可以看到通知栏的颜色变成了我们在样式里所声明的颜色。


完整的Demo托管在Github上,请点击这里

原文地址:点击打开链接


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值