2016-02-17 104 views
0

在使用android開發人員提供的浮動動作按鈕時,我忍不住想知道他們甚至從頭開始實現浮動動作按鈕的確切程度。如何創建浮動操作按鈕?

1)我想知道究竟是浮動操作按鈕建

2)如何是Android能夠僅動畫加成爲別的東西?

這可能是其他崗位的重複,但我已經檢查,似乎無法找到任何職務問同樣的問題。如果你發現有人提出類似的問題,請讓我知道。

我的帖子與此帖子有所不同:How can I add the new "Floating Action Button" between two widgets/layouts,因爲上面的帖子只解釋瞭如何使用android FAB庫,並沒有解釋如何從頭開始創建FAB。

+0

嘿,你可以建議這個帖子。我發佈這個之前檢查過它,只告訴你如何使用Android FAB庫,我已經知道了。問題是我真的很好奇他們是如何從頭開始創建的。 – Wowzer

+0

其不重複,因爲我看@ Xoce –

+0

你應該看看FAB類的官方文檔。 [..這裏..](http://developer.android.com/reference/android/support/design/widget/FloatingActionButton.html) – drWisdom

回答

0

FloatingActionButton類主要延伸,其延伸的imagebuttonVisibilityAwareImageButton。所以,從頭開始,你應該從擴展imagebutton開始。然後,當你得到VisibilityAwareImageButton,你可以創建你的FloatingButton類。

很好的源代碼是在下面的鏈接可以從谷歌

https://android.googlesource.com/platform/frameworks/support/+/master/design/src/android/support/design/widget/FloatingActionButton.java?autodive=0%2F%2F

而且VisibilityAwareImageButton代碼:爲VisibilityAwareImageButton代碼如下

package android.support.design.widget; 

import android.content.Context; 
import android.util.AttributeSet; 
import android.widget.ImageButton; 

class VisibilityAwareImageButton extends ImageButton { 

private int mUserSetVisibility; 

public VisibilityAwareImageButton(Context context) { 
    this(context, null); 
} 

public VisibilityAwareImageButton(Context context, AttributeSet attrs) { 
    this(context, attrs, 0); 
} 

public VisibilityAwareImageButton(Context context, AttributeSet attrs, int defStyleAttr) { 
    super(context, attrs, defStyleAttr); 
    mUserSetVisibility = getVisibility(); 
} 

@Override 
public void setVisibility(int visibility) { 
    internalSetVisibility(visibility, true); 
} 

final void internalSetVisibility(int visibility, boolean fromUser) { 
    super.setVisibility(visibility); 
    if (fromUser) { 
     mUserSetVisibility = visibility; 
    } 
} 

final int getUserSetVisibility() { 
    return mUserSetVisibility; 
} 
} 

他們是如何創建的浮動按鈕給出取自下面鏈接 https://github.com/android/platform_frameworks_support/blob/master/design/base/android/support/design/widget/VisibilityAwareImageButton.java