https://github.com/Andy671/PianoChartView
Elementary and clean Android PianoView for displaying piano chord/scale charts in music theory apps for pianists.
https://github.com/Andy671/PianoChartView
android android-library java music-theory-apps piano-chords piano-keyboard pianoview scale-charts view xml
Last synced: 7 months ago
JSON representation
Elementary and clean Android PianoView for displaying piano chord/scale charts in music theory apps for pianists.
- Host: GitHub
- URL: https://github.com/Andy671/PianoChartView
- Owner: Andy671
- License: mit
- Created: 2017-01-25T13:46:13.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2017-12-28T20:57:14.000Z (almost 8 years ago)
- Last Synced: 2025-04-13T02:42:43.166Z (7 months ago)
- Topics: android, android-library, java, music-theory-apps, piano-chords, piano-keyboard, pianoview, scale-charts, view, xml
- Language: Java
- Homepage:
- Size: 119 KB
- Stars: 55
- Watchers: 6
- Forks: 12
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-github-android-ui - PianoChartView - 显示钢琴和弦比例尺图 (图表(Chart))
README
# Piano Chart View
[](https://jitpack.io/#Andy671/PianoChartView)
[](https://developer.android.com/training/basics/supporting-devices/platforms.html)
[](https://opensource.org/licenses/MIT)
## 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
```gradle
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
```
### Step 2
Add the dependency
```gradle
dependencies {
compile 'com.github.Andy671:PianoChartView:v0.6.6'
}
```
# Usage
### Creating from xml:
In your layout.xml
```xml
xmlns:custom="http://schemas.android.com/apk/res-auto"
```
```xml
```
In your arrays.xml
```xml
5
7
11
1
```
In your colors.xml
```xml
#C8E6C9
#1B5E20
```
### Editing from code:
```java
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