안 드 로 이 드 키보드 개발 지식 총화
본론 으로 들 어가 면 이런 소프트웨어 판 을 개발 하려 면 어디서부터 시작 해 야 합 니까?
단계 1:
안 드 로 이 드 가 제공 하 는 데모 부터 볼 게 요.
소프트 키보드 의 데모 에 대해 서 는 다음 디 렉 터 리 에서 찾 을 수 있 습 니 다.
..\samples\android-22\legacy\SoftKeyboard
STEP 2:키보드 레이아웃
Demo 에서 알 수 있 듯 이 키보드 의 개발 과 인터페이스 개발 은 다 릅 니 다.키보드 도 레이아웃 이 필요 하지만 사용 하 는 레이아웃 파일 이 아니 라 xml 디 렉 터 리 에 있 는 파일 입 니 다.
먼저 보 자:
qwerty.xml 파일:
<Keyboard xmlns:android="http://schemas.android.com/apk/res/android"
android:keyWidth="10%p"
android:horizontalGap="0px"
android:verticalGap="0px"
android:keyHeight="@dimen/key_height"
>
<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:horizontalGap="5%p"
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" android:keyEdgeFlags="right"/>
</Row>
<Row>
<Key android:codes="-1" android:keyIcon="@drawable/sym_keyboard_shift"
android:keyWidth="15%p" android:isModifier="true"
android:isSticky="true" 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="-5" android:keyIcon="@drawable/sym_keyboard_delete"
android:keyWidth="15%p" android:keyEdgeFlags="right"
android:isRepeatable="true"/>
</Row>
<Row android:rowEdgeFlags="bottom">
<Key android:codes="-3" android:keyIcon="@drawable/sym_keyboard_done"
android:keyWidth="15%p" android:keyEdgeFlags="left"/>
<Key android:codes="-2" android:keyLabel="123" android:keyWidth="10%p"/>
<!--
android:codes: -101 is not a framework-defined key code but a key code that is
privately defined in com.example.android.softkeyboard.LatinKeyboardView.
-->
<Key android:codes="-101" android:keyIcon="@drawable/sym_keyboard_language_switch"
android:keyWidth="10%p"/>
<Key android:codes="32" android:keyIcon="@drawable/sym_keyboard_space"
android:keyWidth="30%p" android:isRepeatable="true"/>
<Key android:codes="46,44" android:keyLabel=". ,"
android:keyWidth="15%p"/>
<Key android:codes="10" android:keyIcon="@drawable/sym_keyboard_return"
android:keyWidth="20%p" android:keyEdgeFlags="right"/>
</Row>
</Keyboard>
분석 해 보 세 요:1>상기 코드 를 통 해 알 수 있 듯 이 레이아웃 은 주로 Keyboard 의 파일 에서 이 루어 집 니 다.각 줄 은
2>키보드 노드 의 속성 android:key Width="10%p"은 키 키 의 노드 에 이 속성 이 없 으 면 전체 화면 너비 의 10%너비 이 고 키 의 노드 에 이 속성 이 있 으 면 키 의 노드 속성 을 최종 값 으로 한다.
3>key 노드 속성 에서 android:codes="46,44",codes 는 두 개 입 니 다.첫 번 째 클릭 은 46 의 문자열 이 고 두 번 째 클릭 은 44 의 문자열 이 며 두 번 째 클릭 은 1 초 간격 입 니 다.
STEP 3:분석 코드
키보드 구성 요 소 는 Keyboard View 를 계승 하고 사용자 정의 로 키보드 클래스 를 사용 하여 키보드 레이아웃 파일 을 불 러 오고 Keyboard View.setKeyboard(Keyboard keyboard)를 통 해 레이아웃 을 View 에 할당 합 니 다.구체 적 으로 다음 과 같다.
1>키보드 클래스 로 xml 파일 불 러 오기:
Keyboard keyboard=new Keyboard(context, R.xml.qwerty);
2>Keyboard 를 view 에 할당 하고 Keyboard View 의 방법 으로 setKeyboard 할당
setKeyboard(keyboard);
단계 4 View 에 감청 이벤트 설정감청 이벤트 setOnKeyboard ActionListener 를 설정 하여 onKey 를 실현 하 는 방법,
STEP 5:EditText 필드 레이아웃 사용
지정 한 입력 법 을 사용 하 는 Activity 레이아웃 에 다음 코드 를 추가 합 니 다.
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<android.inputmethodservice.KeyboardView
android:id="@+id/keyboard_view"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:focusable="true"
android:focusableInTouchMode="true"
android:background="@color/lightblack"
android:keyBackground="@drawable/btn_keyboard_key"
android:keyTextColor="@color/white"
android:visibility="gone" />
</RelativeLayout>
1>키 보드 를 개발 할 때 다음 과 같은 문제 가 발생 합 니 다.클릭 한 팝 업 은 글꼴 이 흰색 이 고 검은색 일 때 가 있 으 며 주제 와 관련 이 있 습 니 다.해결 방법:
KeyboardView 는 키보드 의 레이아웃 파일 을 미리 볼 수 있 는 속성 이 있 습 니 다.TextView 를 레이아웃 파일 의 루트 노드 로 정의 할 수 있 습 니 다.
2>미리 보기 레이아웃 파일 의 Popup 높이 가 너무 높 습 니 다.어떻게 조정 하 시 겠 습 니까?사각형 으로 조정 하 시 겠 습 니까?
Keyboard View 는 미리 보기 액 높이 를 조정 할 수 있 는 속성 이 있 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Bitrise에서 배포 어플리케이션 설정 테스트하기이 글은 Bitrise 광고 달력의 23일째 글입니다. 자체 또는 당사 등에서 Bitrise 구축 서비스를 사용합니다. 그나저나 며칠 전 Bitrise User Group Meetup #3에서 아래 슬라이드를 발표했...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.