Code Monkey home page Code Monkey logo

androidiconanimator's Introduction

No Maintenance Intended

Warning: This app and repository is unmaintained. Check out the very awesome Shape Shifter, the successor to this tool.

Android Icon Animator

A web-based tool that lets you design icon animations and other animated vector art for Android. Exports to Animated Vector Drawable format for Android.

Not intended to replace After Effects or other professional animation tools, but very useful for simple animations.

Screen capture of tool

Build instructions

If you want to contribute, you can build and serve the web app locally as follows:

  1. First install Node.js and npm.

  2. Install bower and gulp:

    $ npm install -g bower gulp
    
  3. Clone the repository and in the root directory, run:

    $ npm install
    
  4. To build and serve the web app locally, run:

    $ gulp serve
    

androidiconanimator's People

Contributors

alexjlockwood avatar romannurik avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

androidiconanimator's Issues

More XML cleanup ideas

  • All objectAnimators have an unnecessary name attribute
  • vector and all objectAnimators unnecessary declared the android namespace
  • consider a particular order of attributes within an objectAnimator: propertyName, valueFrom, valueTo, (startOffset), duration, (interpolator), (valueType)
  • skip float valueTypes as they're the default
  • Using a linear interpolator outputs android:anim/linear_interpolator, should change to android:interpolator/linear

run 'gulp server' error

log:

>gulp server
[09:55:34] Using gulpfile F:\bower\AndroidIconAnimator\gulpfile.js
[09:55:34] Task 'server' is not in your gulpfile
[09:55:34] Please check the documentation for proper gulpfile formatting

npm version:4.0.3
gulp version:

gulp -v
[10:00:16] CLI version 3.9.1
[10:00:16] Local version 3.9.1

environment:

操作系统名称	Microsoft Windows 10 专业版
版本	10.0.14393 版本 14393

Investigate 'add another animation' sometimes not working?

From Nick: When adding a second animation to a property i.e. clicking on the plus icon in the left pane which shows an 'Add another animation' tooltip it seemed hit or miss if this would work. I think this might have been when acting on the bottom-most layer where the tooltip shows on top of the button

SVG colors aren't being imported correctly

The below SVG incorrectly imports the fill color as #000000ff instead of #ff000000. Same thing happens with stroke colors too.

<svg xmlns="http://www.w3.org/2000/svg" width="24px" height="24px" viewBox="0 0 24 24">
    <path d="M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z" fill="#000"/>
</svg>

Should "id" be renamed "name"?

Right now the right panel has an editable 'id' field. I think it would make more sense to rename this to 'name' as this way it corresponds more closely to the actual android:name attribute used in XML.

SVG doesn't import correctly when color is specified on the <svg> or <g> nodes

For example, consider this ic_add_black_24dp.svg that I downloaded/modified from go/icons:

<svg xmlns="http://www.w3.org/2000/svg" width="24px" height="24px" 
        viewBox="0 0 24 24" fill="#ff000000">
    <path d="M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z" fill="#fffffff"/>
</svg>

AndroidIconAnimator displays a white plus sign path. However, the SVG should really display a black plus sign path.

Add ability to export to SVG

I mean I know this project is mainly geared towards Android... but it seems like it wouldn't be that hard to do. :)

Add support for `android:repeatCount` attribute

Specifically where android:repeatCount="-1" which is used to specify an animation that loops forever (such as the indeterminate progress bar).

This might be tricky given the current UI for playing animations. A simple repeating animation that would be nice to get working is the circular indeterminate progress indicator, which plays four animations in parallel: three that are 1,333ms and another that is 4,444ms.

Add basic build instructions to README.md

Unless you think it's super obvious. :p

I assumed all you needed to do was:

npm install

and then

gulp serve

However, when I tried this it serves a blank website and the following output:

alockwood@kida:~/AndroidIconAnimator$ gulp serve
[14:03:26] Using gulpfile ~/AndroidIconAnimator/gulpfile.js
[14:03:26] Starting 'styles'...
[14:03:26] Starting 'scripts'...
[14:03:26] Starting 'icons'...
[14:03:27] Starting 'bower'...
[14:03:27] Using cwd: /usr/local/google/home/alockwood/AndroidIconAnimator
[14:03:27] Using bower dir: .tmp/lib
[14:03:28] styles all files 18.65 kB
[14:03:28] Finished 'styles' after 1.68 s
[14:03:31] icons all files 4.87 kB
[14:03:31] Finished 'icons' after 4.83 s
Error: Cannot find module '../../../_sandbox/debug.iconanim.json' from '/usr/local/google/home/alockwood/AndroidIconAnimator/app/pages/studio'
    at /usr/local/google/home/alockwood/AndroidIconAnimator/node_modules/browserify/node_modules/resolve/lib/async.js:55:21
    at load (/usr/local/google/home/alockwood/AndroidIconAnimator/node_modules/browserify/node_modules/resolve/lib/async.js:69:43)
    at onex (/usr/local/google/home/alockwood/AndroidIconAnimator/node_modules/browserify/node_modules/resolve/lib/async.js:92:31)
    at /usr/local/google/home/alockwood/AndroidIconAnimator/node_modules/browserify/node_modules/resolve/lib/async.js:22:47
    at FSReqWrap.oncomplete (fs.js:82:15)
[14:03:34] Finished 'scripts' after 7.71 s
[14:03:37] Finished 'bower' after 11 s
[14:03:37] Starting 'serve'...
[14:03:38] Finished 'serve' after 95 ms
[BS] Access URLs:
 --------------------------------------
       Local: http://localhost:3000
    External: http://172.26.113.33:3000
 --------------------------------------
          UI: http://localhost:3001
 UI External: http://172.26.113.33:3001
 --------------------------------------
[BS] Serving files from: .tmp
[BS] Serving files from: app

Create zero-duration animators to reset animation state when necessary

It is sometimes necessary to create 0-duration animators in order to reset a vector's state to it's desired value (Nick Butcher makes use of it in a few of his Plaid animations, such as the search to back animation here.

It is possible to create zero-duration animators using AndroidIconAnimator right now... however, the user must be aware of this hack ahead of time and it's not super obvious to newcomers. We might want to investigate whether there is a way for these animators to be generated automatically (rather than requiring the user to insert them manually).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.