Material Design--FloatingActionButton実戦
8379 ワード
Material Design--FloatingActionButton(リリース)
コンフィギュレーション
Android studioインポートの使用
最初はどのように導入するか分からず、
Just add the dependency to your build.gradle:
次の操作を行います.
対応するレイアウトxmlに、追加します.
ルートレイアウトには
コントロールを追加するには
以上の設定で表示され、通常のbtnのように使用されます.あまり複雑に考えなくてもいいです.詳細については、
参考記事:FloatingActionButtonの使用
eclipse使用
最初から以上の
使用する項目が違うと、使用も少し違います.
ルートレイアウト:
ここにはアニメーションの効果も入っていて、
実戦
ポップアップテキストのフォント色とフォント背景を変更する方法
Alt text
フローティングメニュー を追加
解決
大量の検索を経て、最も直接的なのは、Githubの中のissues問題で、作者が解決するのを待っています.発見の中で、問題56は問題を解決する構想を提供した.考えに沿ってまずソースコードを は次に、デフォルトのアイコンを見つけます.明らかに描かれています.クラス
文字通りの理解から次に を画定した.で見つかった最初の感覚は、対応するクラスを継承し、対応するメソッドを書き換えることです.すなわち、 現在の クラス を専門に得る.その後、方法:
に改心
設定を行う対応、 を追加します.クラス を加える.
設定完了
カスタム修正
デフォルトは対応するxmlのプロパティを提供する必要がありますres/values/attrs.xml を追加は、クラス を行う.クラス を追加する.最後に
プロジェクトアドレス
私はすでにプロジェクトをforkし、提出し、原作者との合併を申請しました.アドレス:https://github.com/Trity93/android-floating-action-button
最新の自分で更新したプロジェクトアドレス:FloatingActionButton
学習資料
CircularFloatingActionMenuソースコード解析
コンフィギュレーション
Android studioインポートの使用
Github
アドレス:futuresimple/android-floating-action-button最初はどのように導入するか分からず、
eclipse
に同じように第三者のバッグを導入すればいいと思っていましたが、android studio
がgradles
を使用しているとは思いもよらず、直接対応する位置に下の言葉を付け加えるだけで導入できました.Just add the dependency to your build.gradle:
dependencies {
compile 'com.getbase:floatingactionbutton:1.9.0'
}
次の操作を行います.
対応するレイアウトxmlに、追加します.
ルートレイアウトには
xmlns:fab="http://schemas.android.com/apk/res-auto"
が追加され、カスタムフォーマットを使用することを指定します.コントロールを追加するには
以上の設定で表示され、通常のbtnのように使用されます.あまり複雑に考えなくてもいいです.詳細については、
github
の例を参照してください.参考記事:FloatingActionButtonの使用
eclipse使用
最初から以上の
github
のすべてをダウンロードして、導入して、それから間違いを報告しました.インターネットで探しましたが、これが欠けているのではなく、それが欠けています.あきらめるしかない.そして以前はMaterial Deisgn
が保存されていたGithub
アドレスもあり、このfloat button
もありました.さらにeclipse
導入により、完全にエラーは報告されていません.次はこれを使います.gitub
アドレス:navasmdc/MaterialDesign Library、プロジェクト全体をダウンロードし、インポートすればいい.使用する項目が違うと、使用も少し違います.
ルートレイアウト:
xmlns:materialdesign="http://schemas.android.com/apk/res-auto"
コントロールの追加
ここにはアニメーションの効果も入っていて、
nineoldandroids.jar
で実現されたアニメーションの効果を使っていますが、私がなぜアニメーションの効果を使ったのか分かりません.だから、私のところはmaterialdesign:animate="false"
で、使いません.FloatingActionsMenu
を使用して複数のbuttonをポップアップFloatingActionMenu
を使用して複数のfloatbuttonをネストすればよい
実戦
ポップアップテキストのフォント色とフォント背景を変更する方法
Alt text
フローティングメニュー
FloatingActionsMenu
は、属性を提供します.fab:fab_labelStyle
修正を行います.カスタムのインポートstyle
FloatingActionsMenu
にfab:fab_labelStyle="@style/menu_labels_style"
styles.xml
に追加(フォントとバックグラウンドの2つのスタイルを変更するだけ)
解決
FloatingActionsMenu
のアイコンは変更できません大量の検索を経て、最も直接的なのは、Githubの中のissues問題で、作者が解決するのを待っています.発見の中で、問題56は問題を解決する構想を提供した.考えに沿って
clone
にしなければなりません.FloatingActionsMenu
における方法createAddButton
における Drawable getIconDrawable() {
final RotatingDrawable rotatingDrawable = new RotatingDrawable(super.getIconDrawable());
}
文字通りの理解から
RotatingDrawable
の回転資源はsuper.getIconDrawable()
によって得られることが分かる.このクラスを見つけました:AddFloatingActionButton
.AddFloatingActionButton
を研究し、発見方法:getIconDrawable()
はまさにfinal Shape shape = new Shape() {
@Override
public void draw(Canvas canvas, Paint paint) {
canvas.drawRect(plusOffset, iconHalfSize - plusHalfStroke, iconSize - plusOffset, iconHalfSize + plusHalfStroke, paint);
canvas.drawRect(iconHalfSize - plusHalfStroke, plusOffset, iconHalfSize + plusHalfStroke, iconSize - plusOffset, paint);
}
};
Canvas
で満たされた矩形を描く.
字になります.getIconDrawable()
の方法.しかし、原作者がpublic
ではなくデフォルトの修飾子を使用している以上、現在のパッケージのクラスだけがこの方法を書き換えることができ、解けず、自分でソースコードを修正するしかない.AddFloatingActionButton
にメソッドを追加します.私たちはcanvas
を通じて画像を描きました.public Drawable getBitmapDrawable(final int resIcon) {
final Shape shape = new Shape() {
@Override
public void draw(Canvas canvas, Paint paint) {
Bitmap iconbit = BitmapFactory.decodeResource(getResources(), resIcon) ;// Bitmap
canvas.drawBitmap(iconbit,0,0,paint);// canvas
}
};
ShapeDrawable drawable = new ShapeDrawable(shape);
final Paint paint = drawable.getPaint();
paint.setColor(mPlusColor);
paint.setStyle(Style.FILL);
paint.setAntiAlias(true);
return drawable;
}
FloatingActionsMenu
に属性を追加し、ピクチャのリソース private int mResIcon=-1;
getIconDrawable()
を修正し、final RotatingDrawable rotatingDrawable = new RotatingDrawable(super.getIconDrawable());
に改心
RotatingDrawable rotatingDrawable;
if(mResIcon!=-1){
rotatingDrawable = new RotatingDrawable(getBitmapDrawable(mResIcon));
}
else{
rotatingDrawable = new RotatingDrawable(super.getIconDrawable());
}
設定を行う
mResIcon
、デフォルトは
ですが、アイコンがある場合は、変更します.xml
対応のプロパティを提供する必要があります.res/values/attrs.xml
に
FloatingActionsMenu
の方法init(Context context, AttributeSet attributeSet)
にmResIcon=attr.getResourceId(R.styleable.FloatingActionsMenu_fab_bitmap, -1);// , -1
設定完了
カスタム修正
FloatingActionsMenu
の回転角度を解決デフォルトは
135
です.
FloatingActionsMenu
に以下の属性を加える、付与private static final float EXPANDED_PLUS_ROTATION = 90f + 45f;//rorate
private float rotate=EXPANDED_PLUS_ROTATION;//
get
またはset
によって修正され、動的に修正することができるpublic float getRotate() {
return rotate;
}
public void setRotate(float rotate) {
this.rotate = rotate;
}
FloatingActionsMenu
のinit()
にrotate=attr.getFloat(R.styleable.FloatingActionsMenu_fab_rotation,EXPANDED_PLUS_ROTATION);
EXPANDED_PLUS_ROTATION
があるところで、getRotate()
に置き換えるとよい.getIconDrawable
の中にあるfinal ObjectAnimator collapseAnimator = ObjectAnimator.ofFloat(rotatingDrawable, "rotation", getRotate(), COLLAPSED_PLUS_ROTATION);
final ObjectAnimator expandAnimator = ObjectAnimator.ofFloat(rotatingDrawable, "rotation", COLLAPSED_PLUS_ROTATION, getRotate());
プロジェクトアドレス
私はすでにプロジェクトをforkし、提出し、原作者との合併を申請しました.アドレス:https://github.com/Trity93/android-floating-action-button
最新の自分で更新したプロジェクトアドレス:FloatingActionButton
学習資料
CircularFloatingActionMenuソースコード解析