創建drawable的動畫過渡效果:ToggleDrawable

jopen 8年前發布 | 10K 次閱讀 Android開發 移動開發

ToggleDrawable幫助你創建drawable的動畫過渡效果。實現是依賴于貝塞爾曲線而不是SVG圖像,完全兼容api 19以下。

使用說明:

DEMO APK


這個庫提供了類似 SearchArrowDrawableSearchCrossDrawable 或者 DrawerArrowDrawable 的新實現方式:

ToggleDrawable drawable = new SearchArrowDrawable(context);
mImageView.setImageDrawable(drawable);
drawable.setProgress(...); // animate

你可以輕易的通過向ToggleDrawable傳入幾個 Bezier curves 創建自己的過渡效果:

ToggleDrawable drawable = new ToggleDrawable(context);
drawable.add(<start>, <end>);
drawable.add(<start>, <end>);

或者簡單的繼承ToggleDrawable:

public class MyCustomToggleDrawable extends ToggleDrawable {

        public MyCustomToggleDrawable(Context context) {
            super(context, 0, R.style.CustomToggleDrawableStyle);
            float radius = Math.round(getIntrinsicWidth()*0.5f);

            // From circle to square
            add(Bezier.quadrant(radius, 0), Bezier.line(radius, radius, radius, -radius));
            add(Bezier.quadrant(radius, 90), Bezier.line(-radius, radius, radius, radius));
            add(Bezier.quadrant(radius, 180), Bezier.line(-radius, radius, -radius, -radius));
            add(Bezier.quadrant(radius, 270), Bezier.line(-radius, -radius, radius, -radius));
        }
    }

查看 示例

安裝

這個倉庫在itPack上:

https://jitpack.io/#renaudcerrato/ToggleDrawable

在根 build.gradle的repositories的最后添加:

allprojects {
        repositories {
            ...
            maven { url "https://jitpack.io" }
        }
    }

添加依賴:

dependencies {
            compile 'com.github.renaudcerrato:ToggleDrawable:1.0.0'
    }


項目地址: https://github.com/renaudcerrato/ToggleDrawable

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!