elevation
<ImageView … android:elevation="8dp" />
getElevation()/setElevation()
drawable
getOutline()
<android.support.v7.widget.CardView android:layout_width="match_parent" android:layout_height="wrap_content"> <!--カードのコンテンツ --> </android.support.v7.widget.CardView>
CardView
FrameLayout
cardElevation
cardCornerRadius
android:fontFamily="sans-serif-medium"
android:textAppearance="@android:style/TextAppearance.Material.Title"
Title
AppCompat
“@style/TextAppearance.AppCompat.Title”
colorPrimary
Action Bar
colorAccent
EditText
Switch
colorPrimaryDark
Status Bar
colorControlNormal、colorControlActivated、colorControlHighlight、colorButtonNormal、colorSwitchThumbNormal、colorEdgeEffect、statusBarColor、navigationBarColor
Palette.generateAsync(bitmap, new Palette.PaletteAsyncListener() { @Override public void onGenerated(Palette palette) { Palette.Swatch vibrant = palette.getVibrantSwatch(); if (swatch != null) { // 明るい色があるときは // タイトルの TextView を更新する titleView.setBackgroundColor( vibrant.getRgb()); titleView.setTextColor( vibrant.getTitleTextColor()); } } });
album_grid.xml … <Imageview … android:transitionname="@string/transition_album_cover" /> album_details.xml … <Imageview … android:transitionname="@string/transition_album_cover" /> AlbumActivity.java Intent intent = new Intent(); String transitionName = getString(R.string.transition_album_cover); … ActivityOptionsCompat options = ActivityOptionsCompat.makeSceneTransitionAnimation(activity, albumCoverImageView, // 遷移がはじまるビュー transitionName // 遷移先のビューの transitionName ); ActivityCompat.startActivity(activity, intent, options.toBundle());
transitionName
Theme.Material
Button
?android:selectableItemBackground
Ripple
<ripple xmlns:android="http://schemas.android.com/apk/res/android" android:color="@color/accent_dark"> <item> <shape android:shape="oval"> <solid android:color="?android:colorAccent" /> </shape> </item> </ripple>
translationZ
Z = elevation + translationZ
stateListAnimator
Buttons
layout/your_layout.xml <Imagebutton ... android:statelistanimator="@anim/raise" /> anim/raise.xml <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_enabled="true" android:state_pressed="true"> <objectAnimator android:duration="@android:integer/config_shortAnimTime" android:propertyname="translationZ" android:valueto="@dimen/touch_raise" android:valuetype="floatType" /> </item> <item> <objectAnimator android:duration="@android:integer/config_shortAnimTime" android:propertyname="translationZ" android:valueto="0dp" android:valuetype="floatType" /> </item> </selector>
Animator
Animator reveal = ViewAnimationUtils.createCircularReveal( viewToReveal, // Reveal するための新しいビュー centerX, // マスク中心の x 座標 centerY, // マスク中心の y 座標 startRadius, // 開始時のマスクの半径 endRadius); // 完了時のマスクの半径 reveal.start();
Toolbar
Activity.setActionBar()
Activity