PianoChartView
Elementary and clean Android PianoView for displaying piano chord/scale charts in music theory apps for pianists.
Install / Use
/learn @Andy671/PianoChartViewREADME
Piano Chart View
Introduction
Elementary and clean Android View for displaying piano chord and scale charts in music theory apps for pianists.
Sample

Installation
Step 1
Add the JitPack repository to your build file
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
Step 2
Add the dependency
dependencies {
compile 'com.github.Andy671:PianoChartView:v0.6.6'
}
Usage
Creating from xml:
In your <b>layout.xml</b>
xmlns:custom="http://schemas.android.com/apk/res-auto"
<!-- Custom arguments are optional - if you don't override them it uses default values -->
<com.kekstudio.pianochartview.PianoChartView
android:id="@+id/piano_chart_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
custom:checkedKeysColor="@android:color/white"
custom:lightKeysColor="@color/colorCustomLight"
custom:darkKeysColor="@color/colorCustomDark"
custom:size="Small"
custom:checkedKeys="@array/some_integer_array"/>
In your <b>arrays.xml</b>
<!-- Numbers = keys on keyboard -->
<integer-array name="some_integer_array">
<item>5</item>
<item>7</item>
<item>11</item>
<item>1</item>
</integer-array>
In your <b>colors.xml</b>
<color name="colorCustomLight">#C8E6C9</color>
<color name="colorCustomDark">#1B5E20</color>
Editing from code:
PianoChartView pianoChartView = (PianoChartView) findViewById(R.id.piano_chart_view_small);
pianoChartView.setCheckedKeys(new int[]{2, 5, 3, 8, 11, 12});
pianoChartView.setSize(PianoChartView.Size.Small);
pianoChartView.setLightKeysColor(Color.parseColor("#CFD8DC"));
pianoChartView.setDarkKeysColor(Color.parseColor("#607D8B"));
pianoChartView.setCheckedKeysColor(Color.parseColor("#B2EBF2"));
See sample for more info
XML Attributes
| Attribute | Type | Default | | -----------------|:-------------------:| :------------| | lightKeysColor | color | Color.WHITE | | darkKeysColor | color | Color.DKGRAY | | checkedKeysColor | color | #03A9F4 | | additionalCheckedKeysColor | color | #03A9F4 | | checkedKeys | reference (int[]) | { } | | additionalCheckedKeys | reference (int[]) | { } | | namesOfKeys | reference (String[]) | { } | | size | enum [Large, Small] | Large |
Public methods
| Type | Method | |--------------------- |--------------------------------| | void | setCheckedKeys(int[] numbers) | | void | setAdditionalCheckedKeys(int[] numbers) | | void | setNamesOfKeys(String... keyLetters) | | void | setSize(Size size) | | void | setLightKeysColor(int color) | | void | setDarkKeysColor(int color) | | void | setCheckedKeysColor(int color) | | void | setAdditionalCheckedKeysColor(int color) | | int[] | getCheckedKeys() | | int[] | getAdditionalCheckedKeys() | | Size | getSize() | | int | getLightKeysColor() | | int | getDarkKeysColor() | | int | getCheckedKeysColor() | | int | getAdditionalCheckedKeysColor() |
Contribution
- Feel free to fork the repo, make pull requests or fix existing bug
- Feel free to open issues if you find some bug or unexpected behaviour
Related Skills
node-connect
330.3kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
81.3kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
330.3kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
commit-push-pr
81.3kCommit, push, and open a PR
