Step 1. Add the JitPack repository to your build file
Add it in your root settings.gradle at the end of repositories:
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
mavenCentral()
maven { url 'https://jitpack.io' }
}
}
Add it in your settings.gradle.kts at the end of repositories:
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
mavenCentral()
maven { url = uri("https://jitpack.io") }
}
}
Add to pom.xml
<repositories>
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
</repositories>
Add it in your build.sbt at the end of resolvers:
resolvers += "jitpack" at "https://jitpack.io"
Add it in your project.clj at the end of repositories:
:repositories [["jitpack" "https://jitpack.io"]]
Step 2. Add the dependency
dependencies {
implementation 'com.github.infotech-group:android-drawable-dsl:0.3.0'
}
dependencies {
implementation("com.github.infotech-group:android-drawable-dsl:0.3.0")
}
<dependency>
<groupId>com.github.infotech-group</groupId>
<artifactId>android-drawable-dsl</artifactId>
<version>0.3.0</version>
</dependency>
libraryDependencies += "com.github.infotech-group" % "android-drawable-dsl" % "0.3.0"
:dependencies [[com.github.infotech-group/android-drawable-dsl "0.3.0"]]
DSL for constructing the drawables in Kotlin instead of in XML
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<solid android:color="#199fff" />
<stroke
android:width="2dp"
android:color="#444444" />
</shape>
replace it with
shapeDrawable {
shape = GradientDrawable.OVAL
solidColor = Color.parseColor("#199fff")
stroke {
width = dip(2)
color = Color.parseColor("#444444")
}
}
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="true">
<shape>
<solid android:color="@android:color/black" />
</shape>
</item>
<item android:state_pressed="true">
<shape>
<solid android:color="@android:color/holo_red_dark" />
</shape>
</item>
<item>
<shape>
<solid android:color="@android:color/white" />
</shape>
</item>
</selector>
replace it with
stateListDrawable {
checkedState {
shapeDrawable {
solidColor = Color.BLACK
}
}
pressedState {
shapeDrawable {
solidColor = Color.RED
}
}
defaultState {
shapeDrawable {
solidColor = Color.WHITE
}
}
}
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="oval">
<stroke
android:width="5dp"
android:color="#000000" />
</shape>
</item>
<item>
<shape android:shape="oval">
<stroke
android:width="2dp"
android:color="#ffffff" />
</shape>
</item>
</layer-list>
replace it with
layerDrawable(
shapeDrawable {
shape = GradientDrawable.OVAL
stroke {
width = ctx.dip(5)
color = Color.parseColor("#000000")
}
},
shapeDrawable {
shape = GradientDrawable.OVAL
stroke {
width = ctx.dip(2)
color = Color.parseColor("#ffffff")
}
}
)
repositories {
maven { url 'https://jitpack.io' }
}
<a href="http://www.methodscount.com/?lib=com.github.infotech-group%3Aandroid-drawable-dsl%3A0.3.0"><img src="https://img.shields.io/badge/Methods and size-110 | 15 KB-e91e63.svg"/></a>
compile "com.github.infotech-group:android-drawable-dsl:0.3.0"
We haven't covered 100% of the XML DSL, contributions are very welcome
Please write a test for every new tag you add, we (hopefully) made it easy to do