Flooating Action Button完全解析[Design Support Library(2)]
Flooating Action Button完全解析[Design Support Library(2)]
転載は出所を明記してください。http://blog.csdn.net/lmj623565791/article/details/46678867」(http://blog.csdn.net/lmj623565791/article/details/46678867;本論文の出典:【張鴻洋のブログ】
は、上記のAndroidに従ってNavigationView[Design Support Library(1)]を実現した後、Design Support Libraryの中で極めて簡単なコントロールを紹介します。
一、簡単に使う
レイアウト:
効果図:
私達のこの塗りつぶし色とrippleColorはどのようにカスタマイズされますか?デフォルトの色は、themeのcolorAccentですので、styleでcolorAccentを定義することができます。
colorAccentはEditText編集時、Radio Button選択、CheckBoxなどの選択時の色に対応しています。詳細はAndroid 5.x The meとToolBarは実戦的です。
RippleColorはデフォルトでとったのはthemeのColorControl Highlightです。属性を直接使ってこの二つの色を定義することもできます。 立体感にはどのような属性が動的に指定できますか?立体感に関する2つの属性があります。elevationとpresed Translation Zは、前者のユーザーが正常に表示する影の大きさを設定します。後者はクリック時に表示される影の大きさです。自分で設定してみてください。 以上、色をカスタマイズしたいなら、影の大きさも下記のように設定できます。
二、5.xに存在するいくつかの問題
5.xの設備で動作します。いくつかの問題(テストシステム5.0)を発見します。木には影があります。 は上記の設定により影が出ましたが、矩形の境界があります。 maginの値を設定したいです。5.0前にはデフォルトで外の距離があります。
そして、良い実践は:追加属性 は、5.xに対して合理的なmagin を設定する。
以下のとおりです
参考資料4
簡単なシェーディング効果は、drawableによって実現できます。
drawable/fab.xml
もちろん、影がよりリアルになるように、上記のLayer-listをitemに含め、このitemのためにtopとrightを設けました。左、下の影の効果を上、右より重くするために、もちろん他の両側を設けて、効果を変えることができます。
最後にitemを追加して、ボタンの塗りつぶし色に設定します。
このdrawableはselectorなので、pressとデフォルトの状態は基本的に同じコードを2回書いています。塗りつぶしの色が違っています。
使用:
ここでFloat Action Buttonを紹介しました。興味があれば、githubから選んで他の人の実現を見てもいいです。
ok~
新浪微博微信公衆号:hongyangAndroid(ご注意ください。第一時間はブログ情報を送ります。)
参考資料http://antonioleiva.com/floating-action-button/ https://code.google.com/p/android/issues/detail?id=175067 https://github.com/chrisbanes/cheesesquare http://www.myandroidsolutions.com/2015/01/01/android-floating-action-button-fab-tutorial/
転載は出所を明記してください。http://blog.csdn.net/lmj623565791/article/details/46678867」(http://blog.csdn.net/lmj623565791/article/details/46678867;本論文の出典:【張鴻洋のブログ】
は、上記のAndroidに従ってNavigationView[Design Support Library(1)]を実現した後、Design Support Libraryの中で極めて簡単なコントロールを紹介します。
一、簡単に使う
レイアウト:
<android.support.design.widget.FloatingActionButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="right|bottom" android:src="@drawable/ic_discuss" />
非常にシンプルで、直接ImageViewとして使えばいいです。効果図:
私達の
FloatingActionButton
が正常に表示されている場合、塗りつぶしの色があり、陰影があります。クリックするとrippleColorがあり、影の範囲が大きくなります。colorAccentはEditText編集時、Radio Button選択、CheckBoxなどの選択時の色に対応しています。詳細はAndroid 5.x The meとToolBarは実戦的です。
RippleColorはデフォルトでとったのはthemeのColorControl Highlightです。属性を直接使ってこの二つの色を定義することもできます。
app:backgroundTint="#ff87ffeb"
app:rippleColor="#33728dff"
<android.support.design.widget.FloatingActionButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="right|bottom" android:src="@drawable/ic_discuss" app:backgroundTint="#ff87ffeb" app:rippleColor="#33728dff" app:elevation="6dp" app:pressedTranslationZ="12dp" />
クリックイベントはViewのクリックイベントと一致しています。二、5.xに存在するいくつかの問題
5.xの設備で動作します。いくつかの問題(テストシステム5.0)を発見します。
FloatingActionButton
を設定してください。そして、良い実践は:
app:borderWidth="0dp"
以下のとおりです
<android.support.design.widget.FloatingActionButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="end|bottom" app:borderWidth="0dp" android:layout_margin="@dimen/fab_margin" android:src="@drawable/ic_headset" />
values <dimen name="fab_margin">0dp</dimen>
values-v 21 <dimen name="fab_margin">16dp</dimen>
三、簡単にFloatアクションButtonを実現する。参考資料4
簡単なシェーディング効果は、drawableによって実現できます。
drawable/fab.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true">
<layer-list>
<!-- Shadow -->
<item android:top="1dp" android:right="1dp">
<layer-list>
<item>
<shape android:shape="oval">
<solid android:color="#08000000"/>
<padding android:bottom="3px" android:left="3px" android:right="3px" android:top="3px" />
</shape>
</item>
<item>
<shape android:shape="oval">
<solid android:color="#09000000"/>
<padding android:bottom="2px" android:left="2px" android:right="2px" android:top="2px" />
</shape>
</item>
<item>
<shape android:shape="oval">
<solid android:color="#10000000"/>
<padding android:bottom="2px" android:left="2px" android:right="2px" android:top="2px" />
</shape>
</item>
<item>
<shape android:shape="oval">
<solid android:color="#11000000"/>
<padding android:bottom="1px" android:left="1px" android:right="1px" android:top="1px" />
</shape>
</item>
<item>
<shape android:shape="oval">
<solid android:color="#12000000"/>
<padding android:bottom="1px" android:left="1px" android:right="1px" android:top="1px" />
</shape>
</item>
<item>
<shape android:shape="oval">
<solid android:color="#13000000"/>
<padding android:bottom="1px" android:left="1px" android:right="1px" android:top="1px" />
</shape>
</item>
<item>
<shape android:shape="oval">
<solid android:color="#14000000"/>
<padding android:bottom="1px" android:left="1px" android:right="1px" android:top="1px" />
</shape>
</item>
<item>
<shape android:shape="oval">
<solid android:color="#15000000"/>
<padding android:bottom="1px" android:left="1px" android:right="1px" android:top="1px" />
</shape>
</item>
<item>
<shape android:shape="oval">
<solid android:color="#16000000"/>
<padding android:bottom="1px" android:left="1px" android:right="1px" android:top="1px" />
</shape>
</item>
</layer-list>
</item>
<!-- Blue button pressed -->
<item>
<shape android:shape="oval">
<solid android:color="#90CAF9"/>
</shape>
</item>
</layer-list>
</item>
<item android:state_enabled="true">
<layer-list>
<!-- Shadow -->
<item android:top="2dp" android:right="1dp">
<layer-list>
<item>
<shape android:shape="oval">
<solid android:color="#08000000"/>
<padding android:bottom="4px" android:left="4px" android:right="4px" android:top="4px" />
</shape>
</item>
<item>
<shape android:shape="oval">
<solid android:color="#09000000"/>
<padding android:bottom="2px" android:left="2px" android:right="2px" android:top="2px" />
</shape>
</item>
<item>
<shape android:shape="oval">
<solid android:color="#10000000"/>
<padding android:bottom="2px" android:left="2px" android:right="2px" android:top="2px" />
</shape>
</item>
<item>
<shape android:shape="oval">
<solid android:color="#11000000"/>
<padding android:bottom="1px" android:left="1px" android:right="1px" android:top="1px" />
</shape>
</item>
<item>
<shape android:shape="oval">
<solid android:color="#12000000"/>
<padding android:bottom="1px" android:left="1px" android:right="1px" android:top="1px" />
</shape>
</item>
<item>
<shape android:shape="oval">
<solid android:color="#13000000"/>
<padding android:bottom="1px" android:left="1px" android:right="1px" android:top="1px" />
</shape>
</item>
<item>
<shape android:shape="oval">
<solid android:color="#14000000"/>
<padding android:bottom="1px" android:left="1px" android:right="1px" android:top="1px" />
</shape>
</item>
<item>
<shape android:shape="oval">
<solid android:color="#15000000"/>
<padding android:bottom="1px" android:left="1px" android:right="1px" android:top="1px" />
</shape>
</item>
<item>
<shape android:shape="oval">
<solid android:color="#16000000"/>
<padding android:bottom="1px" android:left="1px" android:right="1px" android:top="1px" />
</shape>
</item>
</layer-list>
</item>
<!-- Blue button -->
<item>
<shape android:shape="oval">
<solid android:color="#03A9F4"/>
</shape>
</item>
</layer-list>
</item>
</selector>
かなり長いdrawableですが、複雑ではなく、記憶にもいいです。まず、Viewに影を付けて、app:borderWidth="0dp"
から#08000000
まで使っています。取ったpaddingの値は4、2、1…1です。そうすると、Viewの四辺に影を付けることができます。もちろん、影がよりリアルになるように、上記のLayer-listをitemに含め、このitemのためにtopとrightを設けました。左、下の影の効果を上、右より重くするために、もちろん他の両側を設けて、効果を変えることができます。
最後にitemを追加して、ボタンの塗りつぶし色に設定します。
このdrawableはselectorなので、pressとデフォルトの状態は基本的に同じコードを2回書いています。塗りつぶしの色が違っています。
使用:
<ImageButton android:layout_width="56dp" android:layout_height="56dp" android:layout_gravity="bottom|right" android:layout_margin="20dp" android:background="@drawable/fab" android:src="@drawable/ic_done" />
効果図:ここでFloat Action Buttonを紹介しました。興味があれば、githubから選んで他の人の実現を見てもいいです。
ok~
新浪微博微信公衆号:hongyangAndroid(ご注意ください。第一時間はブログ情報を送ります。)
参考資料