当前位置: 代码迷 >> Android >> How to make Meterial Design App Bar/ActionBar and style it
  详细解决方案

How to make Meterial Design App Bar/ActionBar and style it

热度:222   发布时间:2016-04-27 23:20:10.0
Android自学历程(manterial design)—Toolbar(2)

翻译自:www.android4devs.com/2014/12/how-to-make-meterial-design-app.html  真的成为了学习路上的专业翻译户。。。

先放上最终的效果图

    

图片要大大的才好看

 

How to make Meterial Design App Bar/ActionBar and style it

在这篇文章中以及随后的文章中,我们将会学习 material design,Material design带给了android许多新的功能,在这篇文章中我们将会学习如何实现App Bar使用一种特殊的属性,Toobar(ActionBar想在被称为App Bars),并且添加图标到App bar。

 

1.老生长谈,导入架包

dependencies {    compile fileTree(dir: 'libs', include: ['*.jar'])    compile 'com.android.support:appcompat-v7:23.0.0'}

 

 

2.尽管Actionbar 已经被App bar/Toolbar替代,可是我们依然可以使用ActionBar,当时在我们的这栗子中,我们将创建一个ToolBar,所以我们需要到 style.xml 中去改变我们的theme,"Theme.AppCompat.Light.NoActionBar"(只要有NoActionBar即可),就是为了去除原本的ActionBar。

 

3.现在,我们讨论讨论我们projecyt的颜色方案,正如你看的图片

    

这些属性可以让你设置你的app基本的颜色方案,(windowBackground怎么都编译,显示有问题,实现的人好心求段代码

 

为了实现这一步,我们余姚一个文件叫做 color.xml(我没有这么做,这样不好不好)

<?xml version="1.0" encoding="utf-8"?><resources>    <color name="colorPrimaryDark">#1976D2</color>    <color name="colorPrimary">#2196F3</color>    <color name="textColorPrimary">#FFFFFF</color>    <color name="navigationBarColor">#2196F3</color></resources>

 

 

如下就是Style.xml的样子

<?xml version="1.0" encoding="utf-8"?><resources>    <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>        <item name="colorPrimary">@color/colorPrimary</item>        <item name="android:textColorPrimary">@color/textColorPrimary</item>        <item name="android:navigationBarColor">@color/navigationBarColor</item>    </style></resources>

 

这里我多加了2个属性,可能需要v21-style/xml 详见前一个博文,http://www.cnblogs.com/ryan-ys/p/4745010.html

 

 

4.现在创建一个Toolbar了,Toolbar仅仅就是另一个layout,只是她能够被放置在UI界面上的任何一个地方。现在为了让ToolBar能被所有的需求,或者在大多数的activit中,我们取而代之放在Activity中,而是放在一个单独的文件中叫做 tool_bar.xml,让她包含在我们所需要的activity中。

 

转到res目录,我们创建以一个新的Layout Resourse File并且命名为 tool_bar.xml,并且根元素为 android.support.v7.widget.toolbar,如下图所示

(翻译原图)

 

5.在tool_bar.xml中添加toolbar的背景颜色,并且设置elevation的阴影效果。

    <android.support.v7.widget.Toolbar        android:id="@+id/toolbar"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:background="@color/colorPrimary"        android:elevation="4dp">    </android.support.v7.widget.Toolbar>

 

 

6.将我们的Toolbar添加到main_activity.java中,

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    tools:context=".MainActivity">    <include android:id="@+id/toolbar"        layout="@layout/tool_bar"></include>    <TextView        android:layout_below="@+id/toolbar"        android:id="@+id/text"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="@string/hello_world" /></RelativeLayout>

 

 

7.MainActivity的设置

package com.ryan.toolbardemo01;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.support.v7.widget.Toolbar;import android.view.Menu;import android.view.MenuItem;public class MainActivity extends AppCompatActivity {    private Toolbar toolbar;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        toolbar = (Toolbar) findViewById(R.id.toolbar);        setSupportActionBar(toolbar);    }}

 

 

8.剩下的就是就是展示 如何添加 menu items,比如serch icon 和 uesr icon,icons我选用的是来自 icons4andrioid.com,并且推荐我的一篇帖子,5 tools every android developer must know的帖子,下载好图片后(官方推荐大小),添加到drawbles目录下,

 

9.现在需要添加search icons 和 user icons,在 menu_main.xml

<menu xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:app="http://schemas.android.com/apk/res-auto"    xmlns:tools="http://schemas.android.com/tools"    tools:context=".MainActivity">    <item        android:id="@+id/action_settings"        android:orderInCategory="100"        android:title="@string/action_settings"        app:showAsAction="never" />    <item        android:title="serch"        android:id="@+id/search"        android:icon="@drawable/search"        android:orderInCategory="200"        app:showAsAction="ifRoom"></item>    <item        android:title="user"        android:id="@+id/user"        android:icon="@drawable/users"        android:orderInCategory="300"        app:showAsAction="ifRoom"></item></menu>

 

 

现在 所有的步骤都做好了。

希望你会喜欢这篇译文,以及原博主的创作www.android4devs.com/2014/12/how-to-make-meterial-design-app.html

 

我把我原先的代码重构了下,截下最终效果图,上方阴影部分还是能看出来的

 

  相关解决方案