-
思路查看全部
-
自定義屬性的使用查看全部
-
自定義屬性的基礎(chǔ)查看全部
-
謝謝老師,清楚易懂查看全部
-
感謝老師!查看全部
-
三、屬性動畫 區(qū)別1:內(nèi)容區(qū)域 1.0 ~ 0.7 縮放效果 ratio : 1.0 ~ 0.0 0.7 + 0.3 * ratio 區(qū)別2: 菜單的偏移量需要修改 區(qū)別3: 菜單顯示有縮放以及透明度變換 ratio : 1.0 ~ 0.0 縮放: 0.7 ~ 1.0 1.0 - ratio * 0.3 透明度: 0.6 ~ 1.0 1.0 - ratio * 0.4 @Override protected void onScrollChanged(int l, int t, int oldl, int oldt) { super.onScrollChanged(l, t, oldl, oldt); float ratio = l * 1.0f / mMenuWidth; float menuScale = 1.0f - ratio * 0.3f; float menuAlpha = 1.0f - ratio * 0.4f; ViewHelper.setTranslationX(mMenu, l * 0.7f);//菜單偏移量 ViewHelper.setScaleX(mMenu, menuScale);//菜單縮放 ViewHelper.setScaleY(mMenu, menuScale);//菜單縮放 ViewHelper.setAlpha(mMenu, menuAlpha);//菜單透明度 float contentScale = 0.7f + 0.3f * ratio; ViewHelper.setScaleX(mContent, contentScale);//內(nèi)容區(qū)域縮放 ViewHelper.setScaleY(mContent, contentScale);//內(nèi)容區(qū)域縮放 //設(shè)置縮放中心點左移 ViewHelper.setPivotX(mContent, 0);//中心點X方向左移動到0 ViewHelper.setPivotY(mContent, mContent.getHeight() / 2);//中心點Y方向不變 } 該方法中的 l(偏移量)= getScrollX()(隱藏在屏幕左邊的寬度) 偏移量就是在(偏移量,0)坐標處開始顯示menu(待顯示的內(nèi)容)查看全部
-
總結(jié): 一、自定義ViewGroup 1、構(gòu)造方法的選擇,獲得一些需要用到的值 2、onMeasure 計算子View的寬和高,以及設(shè)置自己的寬和高 3、onLayout 決定子View的布局的位置 【4、onTouchEvent】 ------------------------ 二、構(gòu)造方法 1、context new CustomViewGroup(context) 調(diào)用 this(context , null) 2、context , attr 布局文件中聲明(沒有自定義的屬性) 調(diào)用 this(context , attr , 0) 3、context , attr , defStyle (有自定義的屬性)查看全部
-
自定義屬性: 1.在values里面新建一個attr.xml. <attr name="rightPadding" format="dimension" /> <declare-styleable name="SlidingMenu"> <attr name="rightPadding" format="dimension"> </attr> </declare-styleable> 2.在用到自定義view的布局文件中自定義一個命名空間:xmlns:hyman="http://schemas.android.com/apk/res/com.imooc.slidingmenu",前面的和android是一樣的,后面的是當前項目的包名 3.在自定義的com.imooc.slidingmenu.view.SlidingMenu中設(shè)置屬性 4.在帶有3個參數(shù)的構(gòu)造函數(shù)中獲得自定義屬性的值查看全部
-
自定義屬性的三步查看全部
-
自定義屬性: 一:在Values中申明自定義屬性 1 在Values下創(chuàng)建屬性文件 attrs 2 在屬性值文件中申明 declare-styleable 對應(yīng)的Java代碼為 StyledAttributes 二:在 layout文件中引用自定義屬性 1 申明自定義命名空間 xmlns 并自定義命名空間標簽 2 通過標簽引用自定義屬性,并給自定義屬性賦值 三:在源碼中解析自定義屬性的值: 1 重寫父類構(gòu)造器 2 通過 context.obtainStyledAttributes 獲取TypedArray查看全部
-
一個參數(shù)的構(gòu)造方法會在什么時候調(diào)用呢?在代碼中動態(tài)的使用new來創(chuàng)建這個View的時候,我們可以調(diào)用一個參數(shù)的這個構(gòu)造方法直接傳一個Context來調(diào)用。查看全部
-
在自定義View的時候,當我們在自定義的View中使用了自定義的屬性的時候就會調(diào)用三個參數(shù)的構(gòu)造方法。查看全部
-
自定義屬性: 1.在values里面新建一個attr.xml. <declare-styleable name="SlidingMenu"> <attr name="rightPadding" format="dimension"> </attr> </declare-styleable> 2.在main.xml里面自定義一個命名空間:xmlns:hyman="http://schemas.android.com/apk/res/com.imooc.slidingmenu",前面的和android是一樣的,后面的是當前項目的包名 3.在自定義的com.imooc.slidingmenu.view.SlidingMenu中設(shè)置屬性查看全部
-
設(shè)置菜單滑動顯示和隱藏,我們使用smoothScrollTo()這個方法是為了滿足一個動畫效果。查看全部
-
將menu隱藏到左側(cè),由于我呢onLayout方法也有可能被多次調(diào)用,所以我們需要在layout發(fā)生變化的時候重新設(shè)置一下。查看全部
舉報
0/150
提交
取消