您好,登錄后才能下訂單哦!
系統(tǒng)主題,如何自定義主題 高度與陰影 陰影與輪廓 輪廓與裁剪 矢量圖 drawable染色 取色器 漣漪動(dòng)畫 xml漣漪動(dòng)畫 代碼漣漪動(dòng)畫 狀態(tài)動(dòng)畫 矢量圖動(dòng)畫 路徑動(dòng)畫 揭示動(dòng)畫 Activity轉(zhuǎn)場動(dòng)畫 共享元素轉(zhuǎn)場動(dòng)畫 xml配置轉(zhuǎn)場動(dòng)畫 CardView 如何兼容低版本
Material Design材料設(shè)計(jì),是的一種新的設(shè)計(jì)風(fēng)格,谷歌希望寄由此來統(tǒng)一各種平臺(tái)上的應(yīng)用外觀和用戶體驗(yàn)。
官網(wǎng)介紹:
http://www.google.com/design/spec/material-design/introduction.html
@android:style/Theme.Material (深色)
@android:style/Theme.Material.Light (亮色)
@android:style/Theme.Material.Light.DarkActionBar(亮色,actionbar為深色)
l 如何使用材料風(fēng)格主題?
官方資料:http://developer.android.com/training/material/theme.html或
file:///D:/Android/android-sdk-windows/docs/training/material/theme.html
顏色取色器:
http://www.materialpalette.com/
(1)定義主題:
<!-- api21以上版本生效 --> <style name="RedTheme" parent="android:Theme.Material"> |
(2)使用主題:(有兩種方式)
a) 配置文件中配置
<application |
b) 代碼方式:
protected void onCreate(Bundle savedInstanceState) { |
l 通過V7(部分)包兼容低版本
(1)添加support v7包
在build.gradle的dependencies節(jié)點(diǎn)下添加:
compile 'com.android.support:appcompat-v7:23.0.3' |
(2)使用Theme.AppCompat主題
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> |
(3)繼承AppCompatActivity
界面不再繼承 Activity, FragmentActivity 或ActionBarActivity, 而是繼承AppCompatActivity, 目的是為了將MD的風(fēng)格,
及Toolbar等新的特效兼容到低版本。
注意:V7包只是兼容了材料主題的部分功能,一些主題樣式目前在低版本還無法使用
如:導(dǎo)航欄樣式修改;
n 陰影大小Z = elevation + translationZ (elevation是相對(duì)于父控件的高度)
n 比父控件的高寬小,才能顯示陰影
n 高度(陰影大?。Q定了View的遮蓋關(guān)系
陰影效果設(shè)置:
android:elevation="4dp" android:translationZ="4dp" |
n 指定控件的輪廓
// 默認(rèn)為background android:outlineProvider="none|background|bounds|paddedBounds" |
n 若控件背景為半透明的shape或圖片,則不會(huì)產(chǎn)生陰影。需要在代碼中設(shè)置。
// 代碼設(shè)置輪廓 |
n 裁剪視圖可以輕松改變視圖形狀;
n 裁剪方法:
通過mView.clipToOutline(true)或android:clipToOutline="true"
將視圖裁剪成輪廓指定形狀
n 不是所有輪廓都可裁剪:
僅有矩形、圓形和圓角矩形輪廓支持裁剪,Path、橢圓無法進(jìn)行裁剪;
可通過Outline.canClip()判斷指定的輪廓是否可裁剪:
mTextView.setOutlineProvider(new ViewOutlineProvider() { // 指定輪廓:圓形 // 指定輪廓:圓角矩形 cut2.setText("判斷是否可裁剪: " + outline.canClip()); |
n 十六種PorterDuffXfermode(參考ApiDemo:graphics / xfermodes)
從上面我們可以看到PorterDuff.Mode為枚舉類,一共有16個(gè)枚舉值:
1.PorterDuff.Mode.CLEAR
所繪制不會(huì)提交到畫布上。
2.PorterDuff.Mode.SRC
顯示上層繪制圖片
3.PorterDuff.Mode.DST
顯示下層繪制圖片
4.PorterDuff.Mode.SRC_OVER
正常繪制顯示,上下層繪制疊蓋。
5.PorterDuff.Mode.DST_OVER
上下層都顯示。下層居上顯示。
6.PorterDuff.Mode.SRC_IN
取兩層繪制交集。顯示上層。
7.PorterDuff.Mode.DST_IN
取兩層繪制交集。顯示下層。
8.PorterDuff.Mode.SRC_OUT
取上層繪制非交集部分。
9.PorterDuff.Mode.DST_OUT
取下層繪制非交集部分。
10.PorterDuff.Mode.SRC_ATOP
取下層非交集部分與上層交集部分
11.PorterDuff.Mode.DST_ATOP
取上層非交集部分與下層交集部分
12.PorterDuff.Mode.XOR
異或:去除兩圖層交集部分
13.PorterDuff.Mode.DARKEN
取兩圖層全部區(qū)域,交集部分顏色加深
14.PorterDuff.Mode.LIGHTEN
取兩圖層全部,點(diǎn)亮交集部分顏色
15.PorterDuff.Mode.MULTIPLY
取兩圖層交集部分疊加后顏色
16.PorterDuff.Mode.SCREEN
取兩圖層全部區(qū)域,交集部分變?yōu)橥该魃?/span>
n tint模式
android:background="@drawable/ring"
android:backgroundTint="@color/color_tint" //tint顏色
android:backgroundTintMode="add" // 染色模式
n 一張圖片實(shí)現(xiàn)選擇器:
按下的樣式:drawable/ring_tint.xml
<?xml version="1.0" encoding="utf-8"?> |
選擇器的定義:
<?xml version="1.0" encoding="utf-8"?> |
Palette:調(diào)色板,取色板,它是v7包中的類: android.support.v7.graphics.Palette
可以用來獲取一張圖片中的顏色值。
Vibrant 鮮艷的
Vibrant dark 鮮艷的暗色
Vibrant light 鮮艷的亮色
Muted 柔和的
Muted dark 柔和的暗色
Muted light 柔和的亮色
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.palette); // 對(duì)圖片取色是一個(gè)比較消耗性能的操作,其內(nèi)部會(huì)在子線程中運(yùn)行。 |
l SVG: 矢量圖可以用一個(gè)根節(jié)點(diǎn)為svg的xml文件表示;
l w3矢量圖文檔: https://www.w3.org/TR/SVG11/paths.html
l 繪制矢量圖: http://editor.method.ac/
l Svg --> vector:http://inloop.github.io/svg2android/
要在android中顯示矢量圖,需要把svg文件轉(zhuǎn)換為vector文件
<LinearLayout
|
// drawable/heart.xml <?xml version="1.0" encoding="utf-8"?> |
在MaterialDesign設(shè)計(jì)中,為用戶與app交互反饋他們的動(dòng)作行為和提供了視覺上的連貫性。Material主題為控件和Activity的過渡提供了一些默認(rèn)的動(dòng)畫,在android L上,允許自定義這些動(dòng)畫:
Touch feedback 觸摸反饋動(dòng)畫 (水波紋動(dòng)畫,漣漪動(dòng)畫)
Circular Revealanimation 圓形揭示動(dòng)畫
Path-based animations 基于路徑的動(dòng)畫(Curvedmotion曲線運(yùn)動(dòng))
View state changes 視圖狀態(tài)動(dòng)畫
Vector Drawables 矢量圖動(dòng)畫
Activity transitionsActivity轉(zhuǎn)場動(dòng)畫
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。