Created
February 10, 2016 18:46
-
-
Save CrandellWS/074c97b4a24389798228 to your computer and use it in GitHub Desktop.
keyboard app
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<manifest xmlns:android="http://schemas.android.com/apk/res/android" | |
package="ws.crandell.simplekeyboard"> | |
<application | |
android:allowBackup="true" | |
android:icon="@mipmap/ic_launcher" | |
android:label="@string/app_name" | |
android:supportsRtl="true" | |
android:theme="@style/AppTheme"> | |
<service android:name=".SimpleIME" | |
android:label="@string/simple_ime" | |
android:permission="android.permission.BIND_INPUT_METHOD" | |
> | |
<meta-data android:name="android.view.im" android:resource="@xml/method"/> | |
<intent-filter> | |
<action android:name="android.view.InputMethod" /> | |
</intent-filter> | |
</service> | |
</application> | |
</manifest> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package ws.crandell.simplekeyboard; | |
import android.app.Application; | |
import android.test.ApplicationTestCase; | |
/** | |
* <a href="http://d.android.com/tools/testing/testing_android.html">Testing Fundamentals</a> | |
*/ | |
public class ApplicationTest extends ApplicationTestCase<Application> { | |
public ApplicationTest() { | |
super(Application.class); | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?xml version="1.0" encoding="utf-8"?> | |
<resources> | |
<color name="colorPrimary">#3F51B5</color> | |
<color name="colorPrimaryDark">#303F9F</color> | |
<color name="colorAccent">#FF4081</color> | |
</resources> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?xml version="1.0" encoding="UTF-8"?> | |
<android.inputmethodservice.KeyboardView | |
xmlns:android="http://schemas.android.com/apk/res/android" | |
android:id="@+id/keyboard" | |
android:layout_width="match_parent" | |
android:layout_height="wrap_content" | |
android:layout_alignParentBottom="true" | |
android:keyPreviewLayout ="@layout/preview" | |
/> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?xml version="1.0" encoding="utf-8"?> | |
<input-method xmlns:android="http://schemas.android.com/apk/res/android"> | |
<subtype | |
android:label="@string/subtype_en_US" | |
android:imeSubtypeLocale="en_US" | |
android:imeSubtypeMode="keyboard" /> | |
</input-method> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?xml version="1.0" encoding="utf-8"?> | |
<TextView xmlns:android="http://schemas.android.com/apk/res/android" | |
android:layout_width="match_parent" | |
android:layout_height="match_parent" | |
android:gravity="center" | |
android:background="#ffff00" | |
android:textStyle="bold" | |
android:textSize="30sp" | |
> | |
</TextView> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<Keyboard xmlns:android="http://schemas.android.com/apk/res/android" | |
android:keyWidth="10%p" | |
android:horizontalGap="0px" | |
android:verticalGap="0px" | |
android:keyHeight="60dp" | |
> | |
<Row> | |
<Key android:codes="49" android:keyLabel="1" android:keyEdgeFlags="left"/> | |
<Key android:codes="50" android:keyLabel="2"/> | |
<Key android:codes="51" android:keyLabel="3"/> | |
<Key android:codes="52" android:keyLabel="4"/> | |
<Key android:codes="53" android:keyLabel="5"/> | |
<Key android:codes="54" android:keyLabel="6"/> | |
<Key android:codes="55" android:keyLabel="7"/> | |
<Key android:codes="56" android:keyLabel="8"/> | |
<Key android:codes="57" android:keyLabel="9"/> | |
<Key android:codes="48" android:keyLabel="0" android:keyEdgeFlags="right"/> | |
</Row> | |
<Row> | |
<Key android:codes="113" android:keyLabel="q" android:keyEdgeFlags="left"/> | |
<Key android:codes="119" android:keyLabel="w"/> | |
<Key android:codes="101" android:keyLabel="e"/> | |
<Key android:codes="114" android:keyLabel="r"/> | |
<Key android:codes="116" android:keyLabel="t"/> | |
<Key android:codes="121" android:keyLabel="y"/> | |
<Key android:codes="117" android:keyLabel="u"/> | |
<Key android:codes="105" android:keyLabel="i"/> | |
<Key android:codes="111" android:keyLabel="o"/> | |
<Key android:codes="112" android:keyLabel="p" android:keyEdgeFlags="right"/> | |
</Row> | |
<Row> | |
<Key android:codes="97" android:keyLabel="a" android:keyEdgeFlags="left"/> | |
<Key android:codes="115" android:keyLabel="s"/> | |
<Key android:codes="100" android:keyLabel="d"/> | |
<Key android:codes="102" android:keyLabel="f"/> | |
<Key android:codes="103" android:keyLabel="g"/> | |
<Key android:codes="104" android:keyLabel="h"/> | |
<Key android:codes="106" android:keyLabel="j"/> | |
<Key android:codes="107" android:keyLabel="k"/> | |
<Key android:codes="108" android:keyLabel="l"/> | |
<Key android:codes="35,64" android:keyLabel="\# \@" android:keyEdgeFlags="right"/> | |
</Row> | |
<Row> | |
<Key android:codes="-1" android:keyLabel="CAPS" android:keyEdgeFlags="left"/> | |
<Key android:codes="122" android:keyLabel="z"/> | |
<Key android:codes="120" android:keyLabel="x"/> | |
<Key android:codes="99" android:keyLabel="c"/> | |
<Key android:codes="118" android:keyLabel="v"/> | |
<Key android:codes="98" android:keyLabel="b"/> | |
<Key android:codes="110" android:keyLabel="n"/> | |
<Key android:codes="109" android:keyLabel="m"/> | |
<Key android:codes="46" android:keyLabel="."/> | |
<Key android:codes="63,33,58" android:keyLabel="\? ! :" android:keyEdgeFlags="right"/> | |
</Row> | |
<Row android:rowEdgeFlags="bottom"> | |
<Key android:codes="44" android:keyLabel="," android:keyWidth="10%p" android:keyEdgeFlags="left"/> | |
<Key android:codes="47" android:keyLabel="/" android:keyWidth="10%p" /> | |
<Key android:codes="32" android:keyLabel="SPACE" android:keyWidth="40%p" android:isRepeatable="true"/> | |
<Key android:codes="-5" android:keyLabel="DEL" android:keyWidth="20%p" android:isRepeatable="true"/> | |
<Key android:codes="-4" android:keyLabel="DONE" android:keyWidth="20%p" android:keyEdgeFlags="right"/> | |
</Row> | |
</Keyboard> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package ws.crandell.simplekeyboard; | |
import android.inputmethodservice.InputMethodService; | |
import android.inputmethodservice.Keyboard; | |
import android.inputmethodservice.KeyboardView; | |
import android.media.AudioManager; | |
import android.view.KeyEvent; | |
import android.view.inputmethod.InputConnection; | |
/** | |
* Created by William on 2/10/2016. | |
*/ | |
public class SimpleIME extends InputMethodService | |
implements KeyboardView.OnKeyboardActionListener { | |
private KeyboardView kv; | |
private Keyboard keyboard; | |
private boolean caps = false; | |
@Override | |
public KeyboardView onCreateInputView() { | |
kv = (KeyboardView)getLayoutInflater().inflate(R.layout.keyboard, null); | |
keyboard = new Keyboard(this, R.xml.qwerty); | |
kv.setKeyboard(keyboard); | |
kv.setOnKeyboardActionListener(this); | |
return kv; | |
} | |
private void playClick(int keyCode){ | |
AudioManager am = (AudioManager)getSystemService(AUDIO_SERVICE); | |
switch(keyCode){ | |
case 32: | |
am.playSoundEffect(AudioManager.FX_KEYPRESS_SPACEBAR); | |
break; | |
case Keyboard.KEYCODE_DONE: | |
case 10: | |
am.playSoundEffect(AudioManager.FX_KEYPRESS_RETURN); | |
break; | |
case Keyboard.KEYCODE_DELETE: | |
am.playSoundEffect(AudioManager.FX_KEYPRESS_DELETE); | |
break; | |
default: am.playSoundEffect(AudioManager.FX_KEYPRESS_STANDARD); | |
} | |
} | |
@Override | |
public void onKey(int primaryCode, int[] keyCodes) { | |
InputConnection ic = getCurrentInputConnection(); | |
playClick(primaryCode); | |
switch(primaryCode){ | |
case Keyboard.KEYCODE_DELETE : | |
ic.deleteSurroundingText(1, 0); | |
break; | |
case Keyboard.KEYCODE_SHIFT: | |
caps = !caps; | |
keyboard.setShifted(caps); | |
kv.invalidateAllKeys(); | |
break; | |
case Keyboard.KEYCODE_DONE: | |
ic.sendKeyEvent(new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_ENTER)); | |
break; | |
default: | |
char code = (char)primaryCode; | |
if(Character.isLetter(code) && caps){ | |
code = Character.toUpperCase(code); | |
} | |
ic.commitText(String.valueOf(code),1); | |
} | |
} | |
@Override | |
public void onPress(int primaryCode) { | |
} | |
@Override | |
public void onRelease(int primaryCode) { | |
} | |
@Override | |
public void onText(CharSequence text) { | |
} | |
@Override | |
public void swipeDown() { | |
} | |
@Override | |
public void swipeLeft() { | |
} | |
@Override | |
public void swipeRight() { | |
} | |
@Override | |
public void swipeUp() { | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<resources> | |
<string name="app_name">SimpleKeyboard</string> | |
<string name="simple_ime">Simple IME</string> | |
<string name="subtype_en_US">English (US)</string> | |
</resources> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<resources> | |
<!-- Base application theme. --> | |
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> | |
<!-- Customize your theme here. --> | |
<item name="colorPrimary">@color/colorPrimary</item> | |
<item name="colorPrimaryDark">@color/colorPrimaryDark</item> | |
<item name="colorAccent">@color/colorAccent</item> | |
</style> | |
</resources> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
selam!: kv = ( KeyboardView ) getLayoutInflater ( ).inflate ( R.layout.keyboard2, null ); ?????????????