转换方法:
- Convert Android VectorDrawable to SVG:
使用附件中的java程序。命令如下:
cp Vector2Svg.java path/to/xml_dir
javac Vector2Svg.java
java Vector2Svg ./*.xml
mkdir svg_dir
转换方法:
使用附件中的java程序。命令如下:
cp Vector2Svg.java path/to/xml_dir
javac Vector2Svg.java
java Vector2Svg ./*.xml
mkdir svg_dir
| <templateSet group="AndroidLogKotlin"> | |
| <template name="logm" value="android.util.Log.d(TAG, $FORMAT$)" description="Log method name and its arguments" toReformat="true" toShortenFQNames="true"> | |
| <variable name="FORMAT" expression="groovyScript("def params = _2.collect {it + ' = [$' + it + ']'}.join(', '); return '\"' + _1 + '() called' + (params.empty ? '' : ' with: ' + params) + '\"'", kotlinFunctionName(), functionParameters())" defaultValue="" alwaysStopAt="false" /> | |
| <context> | |
| <option name="KOTLIN_STATEMENT" value="true" /> | |
| </context> | |
| </template> | |
| <template name="logd" value="android.util.Log.d(TAG, "$METHOD_NAME$: $content$")" description="Log.d(String)" toReformat="true" toShortenFQNames="true"> | |
| <variable name="METHOD_NAME" expression="kotlinFunctionName()" defaultValue="" alwaysStopAt="false" /> | |
| <variable name="content" expression="" defaultValue="" alwaysStopAt="true" /> |
| <templateSet group="TimberJava"> | |
| <template name="timd" value="timber.log.Timber.d("$METHOD_NAME$: $content$");" description="Timber.d(String)" toReformat="true" toShortenFQNames="true"> | |
| <variable name="METHOD_NAME" expression="methodName()" defaultValue="" alwaysStopAt="false" /> | |
| <variable name="content" expression="" defaultValue="" alwaysStopAt="true" /> | |
| <context> | |
| <option name="JAVA_STATEMENT" value="true" /> | |
| </context> | |
| </template> | |
| <template name="time" value="timber.log.Timber.e($exception$, "$METHOD_NAME$: $content$");" description="Timber.e(Exception, String)" toReformat="true" toShortenFQNames="true"> | |
| <variable name="exception" expression="" defaultValue="e" alwaysStopAt="true" /> |
| { | |
| "data": { | |
| "__schema": { | |
| "queryType": { | |
| "name": "Query" | |
| }, | |
| "mutationType": { | |
| "name": "Mutation" | |
| }, | |
| "subscriptionType": null, |
| # Autogenerated input type of AddComment | |
| input AddCommentInput { | |
| # A unique identifier for the client performing the mutation. | |
| clientMutationId: String | |
| # The Node ID of the subject to modify. | |
| subjectId: ID! | |
| # The contents of the comment. | |
| body: String! |
| package com.github.brunodles.toastespresso; | |
| import android.support.test.rule.ActivityTestRule; | |
| import android.support.test.runner.AndroidJUnit4; | |
| import android.test.suitebuilder.annotation.LargeTest; | |
| import org.junit.Rule; | |
| import org.junit.Test; | |
| import org.junit.runner.RunWith; |
| apply plugin: 'com.android.application' | |
| def getVersionName = { -> | |
| try { | |
| def stdout = new ByteArrayOutputStream() | |
| exec { | |
| commandLine 'git', 'describe', '--dirty' | |
| standardOutput = stdout | |
| } | |
| return stdout.toString().trim() |
| package despotoski.nikola.appbarlayoutsamples.view; | |
| import android.animation.IntEvaluator; | |
| import android.animation.ValueAnimator; | |
| import android.content.Context; | |
| import android.content.res.TypedArray; | |
| import android.support.design.widget.AppBarLayout; | |
| import android.support.design.widget.CoordinatorLayout; | |
| import android.support.v4.view.ViewCompat; | |
| import android.support.v4.view.ViewPropertyAnimatorCompat; |
| package se.emilsjolander.flipview; | |
| import se.emilsjolander.flipview.Recycler.Scrap; | |
| import android.animation.Animator; | |
| import android.animation.AnimatorListenerAdapter; | |
| import android.animation.TimeInterpolator; | |
| import android.animation.ValueAnimator; | |
| import android.animation.ValueAnimator.AnimatorUpdateListener; | |
| import android.annotation.SuppressLint; | |
| import android.content.Context; |