MaterialDesignの使用および開発ガイド
66345 ワード
序文
Material Design、中国語名:材料設計言語は、Googleが発表した新しい設計言語で、グーグルは、携帯電話、タブレット、デスクトップ、その他のプラットフォームにより一貫性があり、より広範な「外観と感覚」を提供することを目的としていると述べた.
参考:Material Design中国語ネットhttp://design.1sters.com/
Google開発者プラットフォームhttps://developer.android.google.cn/design/index.html
使用開始
1.インベントリファイル
注意themeの設定
2.Gradle構成
(1)appcompat
(2)design
3.ネーミングスペース
Material Designコントロールを使用するレイアウトファイルの名前空間を指定します.
フロートボタンFloatButton
1.説明
2.アンドロイド5.xに存在するいくつかの問題は5.xのデバイス上で実行すると、いくつかの問題が発見されます(テストシステム5.0):(1)シャドウがない
3.その他の
紙切れChips
この意味はPopupMenuコントロールを指すことが多い
1.valuesでのmenuファイルの作成
PopupMenuコントロールを使用してメニューにitemプロパティを指定するには
2.Menu属性解析
showAsActionプロパティには、ifRoom、never、always、withText、collapseActionViewの5つの値があり、混在可能(|記号で区切られた)
サンプルコード
3.クリックイベント
4.PopMeun表示Icon
反射原理を使用して、メニューアイコンを強制的に表示
ツールバーツールバーツールバー
1.レイアウトファイル
略、直接レイアウトにtoolbar空間を宣言すればよい.
2.メニュー項目レイアウト
Menu_toolbar.xml
3.クリックイベント
引き出しDrawer
DrawerLayout+NavigationView+ToolBarの配合はより効果的である.
1.レイアウトの作成
DrawerLayoutでNavigationViewをネストし、NavigationViewレイアウトはヘッダとメニュー項目からなる
(1)全体レイアウト
(2)横滑りページレイアウト
draw_user.xml
属性説明
(3)NavigationViewヘッダレイアウト
navigation_drawer_header.xml
(4)NavigationViewメニュー項目設定
グループラベルでグループを設定できます.グループとグループの間に分割線menu_があります.navigation_drawer.xml
2.NavigationViewクリックイベント
カードカードカード
1.依存の追加
2.レイアウトファイル
RelativeLayoutなどと同様に使用し、必要なものをCardViewに置き換えればよい
3.java
サードパーティ製ライブラリ
検索ボックスMaterialSearchView
1.依存の追加
2.MaterialSearchViewをToolbarが存在するレイアウトに追加し、レイアウトの最後の
3.メニュー項目の追加
4.java
5.カスタムスタイル
valuesのstylesでスタイルを定義し、レイアウトファイルでスタイルを関連付けます.
円形のアイコンCircleView
1.依存の追加
2.使用
材料設計ライブラリMaterialDesign
Github公式アドレスhttps://github.com/navasmdc/MaterialDesignLibrary
1.インポート方法
公式方法:How to use If you want use this library,you only have to download MaterialDesign project,import it into your workspace and add theproject as a library in your android project settings.If you prefer it, you can use the gradledependency, you have to add these lines in your build.gradle file: repositories { jcenter() } dependencies { compile ‘com.github.navasmdc:MaterialDesign:1.5@aar’ }
2.インポートに失敗した場合は、次の方法でインポートします.
(1)まずgithubから公式demoをパソコンにダウンロードする
(2)ダウンロードしたファイルを開くには,クラスライブラリのみで,他のファイルは不要である.
(3)File-New-Import Moduleは、上のフレームのフォルダを見つけて、モジュールとしてインポートする.
(4)そしてあなたの工事に依存を追加します
あるいはStructureに直接追加してもよい.
(5)モジュール構成の変更
MaterialDesignモジュールのgradleコンパイルバージョン、ツールバージョン、最小バージョンはあなたのメインモジュールModule:appと一致します.修正後、同期時にsdkのダウンロードを求める場合がありますが、大きくないので、ダウンロードすればいいです.MaterialDesignモジュールのgradleは赤くなることがあります.気にしないで、直接使えばいいです.
3.使用
簡単なので、公式チュートリアルを直接参照することをお勧めします.https://github.com/navasmdc/MaterialDesignLibrary
ここで注意が必要なのは
(1)ネーミングスペースの指定を忘れない
Somecomponents have custom attributes, if you want use them, you must add this linein your xml file in the first component:
(2)フラットボタン
アイコン素材
Google公式MaterialDesign素材ライブラリ説明ドキュメントhttp://google.github.io/material-design-icons/ダウンロードアドレスhttps://github.com/google/material-design-icons/
標準及び規範
http://design.1sters.com/MarginDesignの規範に従って、まとめたいくつかの設計基準はdimensに直接コピーする.xmlを使用すればよい.mdの仕様項目は細かいものが多いが、規則的であり、mdの設計基準--4 dpの偶数倍(または8の整数倍)を概括することができ、10 dpの整数倍ではない詳細は以下の通りである.
その他
RippleEffect
コントロールをクリックして生成したMaterial Designの水波紋効果https://github.com/traex/RippleEffect例:
ReyMaterial
もう一つの使いやすいMaterialDesignサードパーティライブラリを強くお勧めしますhttps://github.com/rey5137/material
MaterialEdit
MaterialDesignスタイル入力ボックスhttps://github.com/rengwuxian/MaterialEditText
Material Design、中国語名:材料設計言語は、Googleが発表した新しい設計言語で、グーグルは、携帯電話、タブレット、デスクトップ、その他のプラットフォームにより一貫性があり、より広範な「外観と感覚」を提供することを目的としていると述べた.
参考:Material Design中国語ネットhttp://design.1sters.com/
Google開発者プラットフォームhttps://developer.android.google.cn/design/index.html
使用開始
1.インベントリファイル
注意themeの設定
".application.MyApplication"
android:allowBackup="true"
android:icon="@drawable/logo"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/Theme.AppCompat.Light.NoActionBar">
2.Gradle構成
(1)appcompat
compile 'com.android.support:appcompat-v7:25.1.0'
(2)design
compile 'com.android.support:support-v4:25.1.0'
3.ネーミングスペース
Material Designコントロールを使用するレイアウトファイルの名前空間を指定します.
xmlns:app="http://schemas.android.com/apk/res-auto"
フロートボタンFloatButton
.support.design.widget.FloatingActionButton
android:id="@+id/fab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_marginRight="15dp"
android:layout_marginTop="180dp"
android:elevation="1dp"
android:onClick="playVideo"
android:src="@mipmap/bofang_float"
app:backgroundTint="@color/lable_blue"
app:borderWidth="0dp"
app:rippleColor="@color/mediumseagreen"/>
1.説明
android:elevation="1dp"
シャドウapp:backgroundTint="@color/lable_blue"
背景色app:rippleColor="@color/mediumseagreen"
クリック時の色app:borderWidth="0dp"
エッジ幅設定2.アンドロイド5.xに存在するいくつかの問題は5.xのデバイス上で実行すると、いくつかの問題が発見されます(テストシステム5.0):(1)シャドウがない
app:borderWidth="0dp"
を設定したことを覚えています(2)上記の設定を押すと、シャドウが現れますが、矩形の境界(marginが設定されていない場合、わかります)がmarginの値を設定する必要があります.5.0より前に、既定では外側の距離があります(ただし、marginではありませんが、効果は同じです).解決策:属性app:borderWidth="0dp"
を5に追加する.x合理的なmarginを設定する3.その他の
app:fabSize
スタイルは、通常と小さい2種類のnormal、miniの2つの選択android:src
ボタンの中間のピクチャapp:elevation
アイドル状態でのシャドウ深さデフォルトは6 dp app:pressedTranslationZ
押下状態でのシャドウ深さデフォルトは12 dp app:backgroundTint
ボタン色-その他のクリックイベントなどButtonと変わらない.紙切れChips
この意味はPopupMenuコントロールを指すことが多い
1.valuesでのmenuファイルの作成
PopupMenuコントロールを使用してメニューにitemプロパティを指定するには
2.Menu属性解析
showAsActionプロパティには、ifRoom、never、always、withText、collapseActionViewの5つの値があり、混在可能(|記号で区切られた)
ifRoom
はItemに表示されますが、すでに4つ以上のItemがある場合はオーバーフローリストに表示されません.もちろん個数は4個に限らず、画面の幅によって決まる.never
は表示されません.オーバーフローリストにのみ表示され、タイトルのみ表示されるので、itemを定義するときは、タイトルをすべて持参したほうがいいです.always
オーバーフローの有無にかかわらず、常に表示されます.withText
は、Actionbarがテキストタイトルを表示することを示す.Actionbarはできるだけこのタイトルを表示しますが、アイコンが有効でActionbar空間に制限されている場合、テキストタイトルが不完全に表示される可能性があります.collapseActionView
は、ユーザがこのボタンを選択すると、この操作ウィンドウが展開されるボタンに折り畳まれるべきであることを宣言する.そうでなければ、この操作ウィンドウはデフォルトで表示され、適用されない場合でも、操作バーの有効なスペースを占めます.一般的にifRoomと一緒に使うと効果があります.サンプルコード
3.クリックイベント
/**
* chips
*@param view
*/
private void showPopupMenu(View view) {
//View PopupMenu View
PopupMenu popupMenu = new PopupMenu(this, view);
//menu
popupMenu.getMenuInflater().inflate(R.menu.detailtch_popmenu,popupMenu.getMenu());
// menuItem
if (xxx){
//getItem() = menu item -1
popupMenu.getMenu().getItem(2).setTitle(" ");
}
//menuiItem
popupMenu.setOnMenuItemClickListener(newPopupMenu.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
if (item.getItemId() == R.id.action_comment) {
//
}
if (item.getItemId() == R.id.action_contact) {
//
}
if (item.getItemId() == R.id.action_collect) {
//
}
if (item.getItemId() == R.id.action_orderlesson) {
//
}
return false;
}
});
//PopupMenu
popupMenu.setOnDismissListener(new PopupMenu.OnDismissListener() {
@Override
public void onDismiss(PopupMenu menu) {
}
});
// ,
try {
...
} catch (…) {
…
}
//PopupMenu
popupMenu.show();
}
4.PopMeun表示Icon
反射原理を使用して、メニューアイコンを強制的に表示
try {
Field field = popupMenu.getClass().getDeclaredField("mPopup");
field.setAccessible(true);
MenuPopupHelper mHelper = (MenuPopupHelper) field.get(popupMenu);
mHelper.setForceShowIcon(true);
} catch (IllegalAccessException |NoSuchFieldException e) {
e.printStackTrace();
}
ツールバーツールバーツールバー
1.レイアウトファイル
略、直接レイアウトにtoolbar空間を宣言すればよい.
2.メニュー項目レイアウト
Menu_toolbar.xml
<menu
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/action_search"
android:icon="@mipmap/ic_search_white_24dp"
android:title=" "
app:showAsAction="ifRoom" />
<item
android:id="@+id/action_setting"
android:icon="@mipmap/ic_more_vert_white_24dp"
android:title=" "
app:showAsAction="ifRoom" />
menu>
3.クリックイベント
/**
* toolbar
*/
private void initToolBar() {
finalToolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
// ,
toolbar.setNavigationIcon(R.mipmap.ic_menu_white_24dp);
toolbar.setTitle(" ");
toolbar.setTitleTextColor(Color.WHITE);
//
toolbar.inflateMenu(R.menu.menu_toolbar);
// menu item
MenuItemitem = toolbar.getMenu().getItem(0);
// ,
toolbar.setNavigationOnClickListener(newView.OnClickListener() {
@Override
publicvoid onClick(View v) {
drawer.openDrawer(Gravity.LEFT);
}
});
// item
toolbar.setOnMenuItemClickListener(newToolbar.OnMenuItemClickListener() {
@Override
publicboolean onMenuItemClick(MenuItem item) {
intmenuItemId = item.getItemId();
if(menuItemId == R.id.action_search) {
//
}
if(menuItemId == R.id.action_setting) {
//
showPopupMenu(toolbar);
}
return true;
}
});
}
引き出しDrawer
DrawerLayout+NavigationView+ToolBarの配合はより効果的である.
1.レイアウトの作成
DrawerLayoutでNavigationViewをネストし、NavigationViewレイアウトはヘッダとメニュー項目からなる
(1)全体レイアウト
<RelativeLayoutxmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:toolbar="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v4.widget.DrawerLayout
android:id="@+id/drawer"
android:layout_width="match_parent"
android:layout_height="match_parent">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<FrameLayout
android:id="@+id/fl_toolbar_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/blue_indicater">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/blue_indicater"
android:elevation="0dp">android.support.v7.widget.Toolbar>
FrameLayout>
<FrameLayout
android:id="@+id/fl_forFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@id/inc_bottom_main"
android:layout_below="@id/fl_toolbar_container">FrameLayout>
RelativeLayout>
<include
android:id="@+id/include_drawer"
layout="@layout/drawer_user"
android:layout_width="296dp"
android:layout_height="match_parent"
android:layout_gravity="start">include>
android.support.v4.widget.DrawerLayout>
RelativeLayout>
(2)横滑りページレイアウト
draw_user.xml
<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:background="@color/pink"
android:orientation="vertical">
<android.support.design.widget.NavigationView
android:id="@+id/navigation_view"
android:layout_width="296dp"
android:layout_height="match_parent"
android:layout_gravity="start"
app:headerLayout="@layout/navigation_drawer_header"
app:menu="@menu/menu_navigation_drawer" />
LinearLayout>
属性説明
app:headerLayout="@layout/navigation_drawer_header"
ヘッダレイアウトapp:menu="@menu/menu_navigation_drawer"/>
メニュー項目設定(3)NavigationViewヘッダレイアウト
navigation_drawer_header.xml
<RelativeLayoutxmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="184dp"
android:background="@mipmap/header"
android:padding="@dimen/margin_all">
<!—avatar-->
< ImageViewxmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/imgv_avatar_nav"
android:layout_width="72dp"
android:layout_height="72dp"
android:layout_marginBottom="@dimen/divider_small"
android:layout_marginTop="32dp"
android:src="@drawable/avatar"
/>
<TextView
android:id="@+id/txv_username_nav"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@id/imgv_avatar_nav"
android:layout_marginLeft="4dp"
android:text=" "/>
RelativeLayout>
(4)NavigationViewメニュー項目設定
グループラベルでグループを設定できます.グループとグループの間に分割線menu_があります.navigation_drawer.xml
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<group
android:id="@+id/first_group"
android:checkableBehavior="none">
<item
android:id="@+id/item_comment"
android:icon="@mipmap/ic_chat_black_24dp"
android:title=" " />
<item
android:id="@+id/item_collect"
android:icon="@mipmap/ic_grade_black_24dp"
android:title=" " />
group>
<group
android:id="@+id/second_group"
android:checkableBehavior="none">
<item
android:id="@+id/item_setting"
android:icon="@mipmap/ic_settings_black_24dp"
android:title=" " />
group>
<group
android:id="@+id/third_group"
android:checkableBehavior="none">
<item
android:id="@+id/item_function"
android:title=" " />
<item
android:id="@+id/item_creater"
android:title=" " />
group>
menu>
2.NavigationViewクリックイベント
//NavigationView
DrawerLayout drawer;
ImageView imgv_avatar_nav;
TextView txv_username_nav;
/**
*
*/
private void initDrawer() {
drawer= (DrawerLayout) findViewById(R.id.drawer);
//
NavigationViewnavigationView = (NavigationView) findViewById(R.id.include_drawer)
.findViewById(R.id.navigation_view);
// NavigationView
ViewheaderView = navigationView.getHeaderView(0);
imgv_avatar_nav= (ImageView) headerView.findViewById(R.id.imgv_avatar_nav);
txv_username_nav= (TextView) headerView.findViewById(R.id.txv_username_nav);
if(usertype == 1) {//
//
//MenuItemmenuItem = navigationView.getMenu().findItem(R.id.item_teachlesson);
//menuItem.setVisible(false);
}
if(usertype == 2) {//
//
MenuItemmenuItem = navigationView.getMenu().findItem(R.id.item_collect);
menuItem.setVisible(false);
//
//MenuItemmenuItem1 = navigationView.getMenu().findItem(R.id.item_orderlesson);
//menuItem1.setVisible(false);
}
// NavigationView
imgv_avatar_nav.setOnClickListener(newView.OnClickListener() {
@Override
publicvoid onClick(View v) {
//Utils.showToast(" ");
//
Intentintent = new Intent(getApplicationContext(), EditorActivity.class);
//
startActivityForResult(intent,Constans_lekao.REQUEST_CHANGE_AVATAR);
drawer.closeDrawers();
}
});
// NavigationView
navigationView.setNavigationItemSelectedListener(newNavigationView.OnNavigationItemSelectedListener() {
@Override
publicboolean onNavigationItemSelected(MenuItem item) {
// item
if(item.getItemId() == R.id.item_comment) {
//
}
if(item.getItemId() == R.id.item_collect) {
//
}
if(item.getItemId() == R.id.item_setting) {
//
}
…
return true;
}
});
}
カードカードカード
1.依存の追加
compile 'com.android.support:cardview-v7:25.1.0'
2.レイアウトファイル
RelativeLayoutなどと同様に使用し、必要なものをCardViewに置き換えればよい
<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v7.widget.CardView
android:id="@+id/cardView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="100dp">
<ImageView
android:layout_width="150dp"
android:layout_height="match_parent"
android:layout_margin="5dp"
android:scaleType="centerCrop"
android:src="@drawable/sng" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="5dp"
android:text=" "
android:textSize="18sp"
android:textStyle="bold" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="5dp"
android:text=" , " />
LinearLayout>
LinearLayout>
android.support.v7.widget.CardView>
LinearLayout>
3.java
private CardView cardView;
@Override
protected void onCreate(BundlesavedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
cardView = (CardView)findViewById(R.id.cardView);
cardView.setRadius(8);//
cardView.setCardElevation(8);//
cardView.setContentPadding(5,5,5,5);//
}
サードパーティ製ライブラリ
検索ボックスMaterialSearchView
1.依存の追加
dependencies {
compile 'com.miguelcatalan:materialsearchview:1.4.0'
}
2.MaterialSearchViewをToolbarが存在するレイアウトに追加し、レイアウトの最後の
<FrameLayout
android:id="@+id/toolbar_container"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="@color/theme_primary" />
<com.miguelcatalan.materialsearchview.MaterialSearchView
android:id="@+id/search_view"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
FrameLayout>
3.メニュー項目の追加
- "@+id/action_search"
android:icon="@drawable/ic_action_action_search"
android:orderInCategory="100"
android:title="@string/abc_search_hint"
app:showAsAction="always" />
4.java
//toolbar
MaterialSearchView searchView;
// menu item
public void initToolbar(){
…
MenuItem item =toolbar.getMenu().getItem(0);
searchView.setMenuItem(item);
searchView.setCursorDrawable(R.drawable.shape_searchview_cursor);
…
}
public void initEvent(){
//searchview
searchView.setOnQueryTextListener(newMaterialSearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(Stringquery) {
if(!TextUtils.isEmpty(query)) {
getSearchTeacher(query);
}
returnfalse;
}
@Override
public boolean onQueryTextChange(StringnewText) {
returnfalse;
}
});
//
searchView.setOnSearchViewListener(newMaterialSearchView.SearchViewListener() {
@Override
public void onSearchViewShown() {
}
@Override
public void onSearchViewClosed() {
}
});
}
5.カスタムスタイル
valuesのstylesでスタイルを定義し、レイアウトファイルでスタイルを関連付けます.
<com.miguelcatalan.materialsearchview.MaterialSearchView
android:id="@+id/search_view"
style="@style/MaterialSearchViewStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="25dp" />
<stylename="MaterialSearchViewStyle">
<!— -->
<itemname="searchBackground">@color/theme_primaryitem>
<itemname="searchVoiceIcon">@drawable/ic_action_voice_search_inverteditem>
<!— inverted ; inverted -->
<itemname="searchCloseIcon">@drawable/ic_action_navigation_close_inverteditem>
<itemname="searchBackIcon">@drawable/ic_action_navigation_arrow_back_inverteditem>
<itemname="searchSuggestionIcon">@drawable/ic_suggestionitem>
<itemname="searchSuggestionBackground">@android:color/whiteitem>
<itemname="android:textColor">@color/theme_primary_text_inverteditem>
<itemname="android:textColorHint">@color/theme_secondary_text_inverteditem>
<!—Hint -->
<itemname="android:hint">@string/search_hintitem>
style>
円形のアイコンCircleView
1.依存の追加
dependencies {
...
compile 'de.hdodenhof:circleimageview:2.1.0'
}
2.使用
.hdodenhof.circleimageview.CircleImageView
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/profile_image"
android:layout_width="96dp"
android:layout_height="96dp"
android:src="@drawable/profile"
app:civ_border_width="2dp"
app:civ_border_color="#FF000000"/>
app:civ_border_width:
app:civ_border_color:
材料設計ライブラリMaterialDesign
Github公式アドレスhttps://github.com/navasmdc/MaterialDesignLibrary
1.インポート方法
公式方法:How to use If you want use this library,you only have to download MaterialDesign project,import it into your workspace and add theproject as a library in your android project settings.If you prefer it, you can use the gradledependency, you have to add these lines in your build.gradle file: repositories { jcenter() } dependencies { compile ‘com.github.navasmdc:MaterialDesign:1.5@aar’ }
2.インポートに失敗した場合は、次の方法でインポートします.
(1)まずgithubから公式demoをパソコンにダウンロードする
(2)ダウンロードしたファイルを開くには,クラスライブラリのみで,他のファイルは不要である.
(3)File-New-Import Moduleは、上のフレームのフォルダを見つけて、モジュールとしてインポートする.
(4)そしてあなたの工事に依存を追加します
build.gradle(Module:app)
dependencies {
compile project(':MaterialDesign')
}
あるいはStructureに直接追加してもよい.
(5)モジュール構成の変更
MaterialDesignモジュールのgradleコンパイルバージョン、ツールバージョン、最小バージョンはあなたのメインモジュールModule:appと一致します.修正後、同期時にsdkのダウンロードを求める場合がありますが、大きくないので、ダウンロードすればいいです.MaterialDesignモジュールのgradleは赤くなることがあります.気にしないで、直接使えばいいです.
3.使用
簡単なので、公式チュートリアルを直接参照することをお勧めします.https://github.com/navasmdc/MaterialDesignLibrary
ここで注意が必要なのは
(1)ネーミングスペースの指定を忘れない
Somecomponents have custom attributes, if you want use them, you must add this linein your xml file in the first component:
<RelativeLayoutxmlns:android="http://schemas.android.com/apk/res/android"
xmlns:materialdesign="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
</RelativeLayout>
(2)フラットボタン
<com.gc.materialdesign.views.ButtonFlat
android:id="@+id/buttonflat"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#1E88E5"
android:text="Button"/>
android:background .
アイコン素材
Google公式MaterialDesign素材ライブラリ説明ドキュメントhttp://google.github.io/material-design-icons/ダウンロードアドレスhttps://github.com/google/material-design-icons/
標準及び規範
http://design.1sters.com/MarginDesignの規範に従って、まとめたいくつかの設計基準はdimensに直接コピーする.xmlを使用すればよい.mdの仕様項目は細かいものが多いが、規則的であり、mdの設計基準--4 dpの偶数倍(または8の整数倍)を概括することができ、10 dpの整数倍ではない詳細は以下の通りである.
<resources>
<dimen name="activity_horizontal_margin">16dpdimen>
<dimen name="activity_vertical_margin">16dpdimen>
<dimen name="fab_margin">16dpdimen>
<dimen name="elevation_header">2dpdimen>
<dimen name="elevation_tab">4dpdimen>
<dimen name="btn_width">88dpdimen>
<dimen name="btn_height">36dpdimen>
<dimen name="flatbtn_twogroup_height">72dpdimen>
<dimen name="flatbtn_twogroup_margin">24dpdimen>
<dimen name="edt_height">48dpdimen>
<dimen name="item_height_oneline">48dpdimen>
<dimen name="item_height_oneline_avatar">56dpdimen>
<dimen name="item_height_twoline">72dpdimen>
<dimen name="item_height_threeline">88dpdimen>
<dimen name="item_height_fourline">104dpdimen>
<dimen name="item_padding">16dpdimen>
<dimen name="margin_all">16dpdimen>
<dimen name="margin_left_all">16dpdimen>
<dimen name="margin_right_all">16dpdimen>
<dimen name="margin_left_title_txt">72dpdimen>
<dimen name="margin_dialog_24">24dpdimen>
<dimen name="height_tab">48dpdimen>
<dimen name="height_header">56dpdimen>
<dimen name="height_listitem">72dpdimen>
<dimen name="divider_small">8dpdimen>
<dimen name="divider_medium">24dpdimen>
<dimen name="divider_large">48dpdimen>
<dimen name="divider_huge">56dpdimen>
<dimen name="divider_textline">4dpdimen>
<dimen name="txt_headline">24spdimen>
<dimen name="txt_title">20spdimen>
<dimen name="txt_subhead">16spdimen>
<dimen name="txt_body">14spdimen>
<dimen name="txt_caption">12spdimen>
<dimen name="txt_menu">14spdimen>
<dimen name="txt_btn">14spdimen>
<dimen name="tab_indicator_height">2dpdimen>
<dimen name="tab_txt_margin">12dpdimen>
<dimen name="tab_height">48dpdimen>
<dimen name="imgv_small">32dpdimen>
<dimen name="imgv_large">56dpdimen>
<dimen name="imgv_huge">72dpdimen>
resources>
その他
RippleEffect
コントロールをクリックして生成したMaterial Designの水波紋効果https://github.com/traex/RippleEffect例:
<com.andexert.library.RippleView
android:layout_width="match_parent"
android:layout_height="36dp"
android:layout_alignParentBottom="true"
app:rv_color="@color/fontlight"
app:rv_rippleDuration="200">
"@+id/rl_register"
android:layout_width="match_parent"
android:layout_height="36dp">
"wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text=" ? "
android:textColor="@color/fontlight"
android:textSize="16sp" />
com.andexert.library.RippleView>
ReyMaterial
もう一つの使いやすいMaterialDesignサードパーティライブラリを強くお勧めしますhttps://github.com/rey5137/material
MaterialEdit
MaterialDesignスタイル入力ボックスhttps://github.com/rengwuxian/MaterialEditText