亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
  • //把dp 轉化為 px 此方法可用于單位轉換 TypedValue.applyDimension(TypedValus.COMPLEX_UNIT_DIP,50,context.getResources().getDisplayMetrics());
    查看全部
    0 采集 收起 來源:自定義ViewGroup

    2015-11-10

  • 總結(如圖,簡單明了) 注意: 屬性動畫的內容:http://blog.csdn.net/lmj623565791/article/details/39257409
    查看全部
  • 這是上一筆記的圖
    查看全部
  • 抽屜式菜單(二) 1.原理:還是利用nineoldandroids-2.4.0.jar源碼包中的ViewHelper類中的接口來實現 http://blog.csdn.net/lixiaodaoaaa/article/details/41310233,這個文章還有一些其它的ViewHelper的例子 2.首先要明確最后的效果應該是什么樣的,借助scale范圍:1.0~0.0來實現 (1)content視圖有1.0~0.7縮放效果: 梯度表達:0.7+0.3*scale (2)菜單視圖有0.7~1.0縮放效果: 梯度表達:1.0-scale*0.3 (3)菜單視圖還有0.6~1.0的透明度變化效果 梯度表達:1.0-0.4*scale 3.具體實現比較簡單,都是接口的調用(如圖) (1)設置menu的縮放效果通過setScaleX()來實現 ViewHelper.setScaleX(mMenu, leftScale); ViewHelper.setScaleY(mMenu, leftScale); (2)設置透明度變化效果 ViewHelper.setAlpha(mMenu, leftAlpha); (3)設置content視圖的縮放 這里需要注意要給content設置一個縮放的中心點為最右邊中心點(下一張圖)
    查看全部
  • 抽屜式菜單(一) 1.原理:使用了nineoldandroids-2.4.0.jar源碼包中的偏移動畫的實現。 剛開始時,menu的向右偏移量是最大的,為自己的mMenuWith,這樣整個menu就會隱藏在content視圖后面。 當向右滑動的過程中,整個HorizontalscrollView都在向右滑,但是同時menu還需要不斷向右偏移,這樣它的左邊就能一直靠在屏幕左邊。但是注意menu向右偏移的寬度在減少。 2.弄清楚兩個概念 (1)屬性動畫的TranslationX 這是指setTranslationX(view, translationX)的第二個參數,即偏移量,大于0表示向右偏移,小于0表示向左偏移 注意: 如果使用Android Studio編程,nineoldandroids包是可以通過添加dependencies來添加進來的,不需要下載并放在/libs下。 (2)梯度scale 因為動畫過程是比較平緩的,所以應該設置一個float型的梯度值 這個梯度值是通過scrollX來獲得的,scrollX是menu距左邊屏幕的寬度,在整個HorizontalScrollView向右滑動過程中,這個值是漸變的(從mMenuWidth -> 0),和menu視圖向右偏移量對應。 3.最后需要考慮的是動畫的實現 1)ACTION_MOVE中實現 移動過程中,通過getScrollX()獲取scrollX的值,然后設置梯度,然后調用setTranslationX()設置偏移。 這樣在點擊“切換菜單”的時候不會看到像要的效果。因為“切換菜單”的實現是直接調用smoothScrollTo()來實現的。 2)通過onScrollChanged(int l...) 這個函數是nineoldandroids包中的,第一個參數l就是scrollX,而且onScrollChanged()不管是在整個View自動滾動還是手動滾動時都會被調用,這樣就解決了點擊“切換菜單”的問題。 3)實現如圖 //l是菜單最左邊距屏幕左邊的寬度,范圍:mMenuWidth->0 //scale范圍:1->0 float scale = l * 1.0f / mMenuWidth; //scale * mMenuWidth偏移量范圍就是:mMenuWidth->0
    查看全部
  • 添加藍牙切換 1.實現比較簡單 先實現兩個打開/關閉菜單的函數 private void closeMenu() { if(!isOpen)return; this.smoothScrollTo(mMenuWidth, 0); } private void openMenu(){ if(isOpen)return; this.smoothScrollTo(0, 0); } 2.實現一個關鍵的toggle()方法,用來統一處理 public void toggle(){ if(isOpen) { closeMenu(); isOpen = false; }else { openMenu(); isOpen = true; } } 3.關鍵就是學習這種實現思想
    查看全部
  • 自定義左側菜單距離右側屏幕的寬度 1.創建一個屬性文件attr.xml <resources> <attr name = "rightPadding" format="dimension" ></attr> <declare-styleable name="SlidingMenu"> <attr name="rightPadding" ></attr> </declare-styleable> </resources> 2.activity_main.xml布局中添加命名空間,并為這個屬性設置一個值 xmlns:zhangxt4="http://schemas.android.com/apk-res" <SlidingMenu zhangxt4:rightPadding="100dp" 3.當使用了自定義的屬性時,會調用此構造方法 SlidingMenu(Context context, AttributeSet attrs, int defStyleAttr) //獲取自定義的屬性 TypedArray a = context.getTheme().obtainStyledAttributes(attrs, R.styleable.SlidingMenu, defStyleAttr, 0); int n = a.getIndexCount(); for(int i = 0; i < n; i++){ int attr = a.getIndex(i); switch (attr){ case R.styleable.SlidingMenu_rightPadding: //默認值 …… mMenuRightPadding = a.getDimensionPixelSize(attr, defautRightPadding); } } 4.自定義屬性和UI模板的知識點參考《Android UI模板設計》的課程 http://www.xianlaiwan.cn/space/notelist/uid/1859625/cid/247
    查看全部
    0 采集 收起 來源:自定義屬性

    2018-03-22

  • 自定義ViewGroup 1.(3)onTouchEvent()監聽點擊事件(續) 這里只需要判斷當手指離開屏幕時,整個HorizontalScrollView最左邊離屏幕左邊的距離,即被隱藏的區域的寬度 int action = ev.getAction(); switch (action){ case MotionEvent.ACTION_UP: //獲取HorizontalScrollView最左邊離屏幕左邊的寬度,即左側隱藏View的寬度 int scrollX = getScrollX(); if(scrollX >= mMenuWidth/2){ //隱藏寬度比較大,繼續隱藏 this.smoothScrollTo(mMenuWidth, 0); }else{ this.smoothScrollTo(0, 0); } return true; }
    查看全部
    0 采集 收起 來源:自定義ViewGroup

    2018-03-22

  • 自定義ViewGroup 1.自定義ViewGroup是實現這個課程關鍵的一點,也是實現自定義View的關鍵知識點 2.關鍵需要實現三個方法: (1)onMeasure()決定自己和自己內部子View的寬和高 protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { if(!once) { mWapper = (LinearLayout) getChildAt(0); mMenu = (ViewGroup) mWapper.getChildAt(0); mContent = (ViewGroup) mWapper.getChildAt(1); mMenu.getLayoutParams().width = mScreenWidth - mMenuRightPadding; mContent.getLayoutParams().width = mScreenWidth; once = true; } super.onMeasure(widthMeasureSpec, heightMeasureSpec); } 用once的目的是防止多次設置子View的寬和高 (2)onLayout()決定子view放置的位置,這里需要通過設置偏移量來將左側菜單的布局隱藏起來 protected void onLayout(boolean changed, int l, int t, int r, int b) { super.onLayout(changed, l, t, r, b); if(changed) { this.scrollTo(mMenuWidth, 0); //scrollTo(x, y) x為正值表示滾動條向右移動,x的值表示HorizontalScrollView的最左邊距離屏幕的寬度 } } (3)onTouchEvent()監聽點擊事件(續)
    查看全部
    0 采集 收起 來源:自定義ViewGroup

    2015-11-07

  • 菜單布局 1.首先主布局是一個RelativeLayout,內套一個HorizontalScrollView。 HorizontalScrollView內套一個水平的LinearLayout,在這個LinearLayout的左邊就是菜單欄,右邊是主要內容 2.左邊的菜單欄的布局,具體內容見代碼 (1)整體是RelativeLayout,內套一個垂直方向的LinearLayout (2)在這個LinearLayout中,垂直放置有5個菜單項 (3)每個菜單項是一個RelativeLayout,每個RelativeLayout中,左邊是一個ImageView,右邊是一個TextView 3.
    查看全部
    0 采集 收起 來源:實現菜單布局

    2015-11-07

  • 原理: 實現一個ViewGroup,繼承HorizontalScrollView(如圖)
    查看全部
    0 采集 收起 來源:側滑概述

    2015-11-07

  • 在ListView中每個行布局能實現這樣的效果嗎
    查看全部
    0 采集 收起 來源:側滑概述

    2015-11-04

  • 自定義屬性: 1:attrs.xml 2:xmlns:...,使用屬性 3.三個參數的構造函數內讀取值
    查看全部
  • android studio里,在activity_main中,不需要自己手動定義xmlns命名空間,系統會自動補充xmlns:app="http://schemas.android.com/apk/res-auto"
    查看全部
    1 采集 收起 來源:自定義屬性

    2018-03-22

  • onlayout
    查看全部
    0 采集 收起 來源:自定義ViewGroup

    2015-10-29

舉報

0/150
提交
取消
課程須知
本課程對于學習者要求較高,對學習者有以下幾個要求:首先,對Java語言的掌握是必須的必,哪怕不精通,但是也要熟練;其次,要對Android中常用的一些API信手拈來;再次,還要了解自定義控件和屬性動畫,最后,如果想很好的跟上老師的講課速度,熟悉Eclipse IDE很重要
老師告訴你能學到什么?
1、側滑菜單的原理 2、如何自定義ViewGroup 3、自定義ViewGroup中需要掌握的幾個方法 4、如何為自己設計的控件抽取自定義屬性 5、如何使用屬性動畫

微信掃碼,參與3人拼團

微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

友情提示:

您好,此課程屬于遷移課程,您已購買該課程,無需重復購買,感謝您對慕課網的支持!