如何在Android中为应用程序制作自己的键盘?

时间:2011-02-15 23:22:25

标签: android android-layout android-softkeyboard

我目前正在开发一款需要使用其他语言键盘的应用程序(特别是希伯来语)。

问题在于我不知道从哪里开始。我不希望用户必须进入应用程序商店,并安装一个单独的应用程序,其中包含更多语言,只是为了使用我的应用程序。

我只希望键盘在我的应用程序中可用(即它不应该影响我的特定应用程序之外的任何内容)。我现在这样做的方法是将其创建为主要布局的一部分,并且只要用户单击“编辑文本”,就可以使其显示。

这种方法的问题是我无法调整它的大小。我最初尝试使用2种不同的布局(一种在res / layout文件夹中,另一种在res / layout-lnd文件夹中),但这会在我的应用程序中引起不同的问题,使其变慢。

我想知道两件事,其中任何一件都应该有用。

  1. 如何创建键盘重新调整的布局。
  2. 如何正确制作键盘?
  3. 以下是我使用的与键盘有关的XML代码:

    <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"  
      android:visibility="gone"
      android:background="@color/puzzle_dark"  
      android:id="@+id/hebrwKeyboardView"  
      android:layout_width="fill_parent"  
      android:layout_height="146dip"  
      android:layout_gravity="right|center_vertical|center_horizontal|bottom"  
      android:fitsSystemWindows="true"  
      android:clipChildren="false"  
      android:orientation="vertical" >  
    <TableLayout xmlns:android="http://schemas.android.com/apk/res/android"  
      android:layout_width="wrap_content"  
      android:layout_height="145dip"  
      android:clipChildren="false"  
      android:layout_gravity="center_vertical|center_horizontal|bottom"  
      android:fitsSystemWindows="true"  
      android:orientation="horizontal" >  
    <TableLayout xmlns:android="http://schemas.android.com/apk/res/android"  
      android:layout_width="fill_parent"  
      android:layout_height="145dip"  
      android:clipChildren="false"  
      android:layout_gravity="center_vertical|center_horizontal|bottom"  
      android:fitsSystemWindows="true"  
      android:orientation="vertical" >  
      <TableRow android:layout_width="fill_parent"  
      android:layout_height="fill_parent"  
      android:layout_gravity="center_horizontal|center_vertical|center"  
      android:fitsSystemWindows="true"  
      android:clipChildren="false"  
      android:orientation="horizontal"  
      android:stretchColumns="true">  
      <LinearLayout   
      android:baselineAligned="true"  
      android:layout_width="fill_parent"  
      android:layout_gravity="center"  
      android:layout_height="fill_parent"  
      android:fitsSystemWindows="true"  
      android:clipChildren="false"  
      android:orientation="horizontal">  
      <Button  
      android:id="@+id/KoofButton"  
      android:layout_width="wrap_content"  
      android:layout_height="35dip"  
      android:text="@string/Koof"  
      android:layout_gravity="center"  
      android:fitsSystemWindows="true"  
      android:ellipsize="marquee"/>  
      <Button  
      android:soundEffectsEnabled="true"  
      android:id="@+id/raishButton"  
      android:layout_width="wrap_content"  
      android:layout_height="35dip"  
      android:text="@string/Raish"  
      android:layout_gravity="center_horizontal"  
      android:fitsSystemWindows="true"  
      android:ellipsize="marquee"/>  
      <Button  
     android:soundEffectsEnabled="true"  
      android:id="@+id/alephButton"  
      android:layout_gravity="center_horizontal"  
      android:layout_width="wrap_content"  
      android:layout_height="35dip"  
      android:text="@string/Alef"  
      android:fitsSystemWindows="true"  
      android:ellipsize="marquee"/>  
      <Button  
    android:soundEffectsEnabled="true"  
      android:id="@+id/tetButton"  
      android:layout_width="wrap_content"  
      android:layout_gravity="center_horizontal"  
      android:layout_height="35dip"  
      android:text="@string/Tet"  
      android:fitsSystemWindows="true"  
      android:ellipsize="marquee"/>  
      <Button  
    android:soundEffectsEnabled="true"  
      android:id="@+id/vuvButton"  
      android:layout_width="wrap_content"  
      android:layout_height="35dip"  
      android:layout_gravity="center_horizontal"  
      android:text="@string/Vuv"  
      android:fitsSystemWindows="true"  
      android:ellipsize="marquee"/>  
      <Button  
    android:soundEffectsEnabled="true"  
      android:id="@+id/nunSophitButton"  
      android:layout_width="wrap_content"  
      android:layout_height="35dip"  
      android:layout_gravity="center_horizontal"  
      android:text="@string/NunSofit"   
    android:fitsSystemWindows="true"   
    android:gravity="fill"   
    android:ellipsize="marquee"/>  
      <Button  
     android:soundEffectsEnabled="true"  
      android:id="@+id/memSofitButton"  
      android:layout_width="wrap_content"  
      android:layout_gravity="center_horizontal"  
      android:layout_height="35dip"  
      android:text="@string/MemSofit"  
      android:fitsSystemWindows="true"  
      android:ellipsize="marquee"/>  
      <Button  
    android:soundEffectsEnabled="true"  
      android:id="@+id/payButton"  
      android:layout_width="wrap_content"  
      android:layout_height="35dip"
      android:text="@string/Pay"  
      android:fitsSystemWindows="true"  
      android:layout_gravity="center_horizontal"  
      android:ellipsize="marquee"/>  
      </LinearLayout>  
      </TableRow>  
      <TableRow android:layout_width="fill_parent"  
      android:layout_height="fill_parent"  
      android:clipChildren="true"  
      android:layout_gravity="center_horizontal|center_vertical|center"  
      android:fitsSystemWindows="true"  
      android:orientation="horizontal">  
      <RelativeLayout android:layout_width="fill_parent"  
      android:clipChildren="true"  
      android:layout_height="fill_parent"  
      android:layout_gravity="center_horizontal|center"  
      android:gravity="bottom"  
      android:orientation="horizontal">  
      <Button  
      android:layout_alignWithParentIfMissing="true"  
     android:soundEffectsEnabled="true"  
      android:id="@+id/shinButton"  
      android:layout_width="wrap_content"  
      android:layout_centerHorizontal="true"  
      android:layout_gravity="center_horizontal|center_vertical|center"  
      android:layout_height="35dip"  
      android:text="@string/Shin"  
      android:layout_alignParentLeft="true"  
      android:fitsSystemWindows="true"
      />  
      <Button  
      android:layout_centerHorizontal="true"  
     android:soundEffectsEnabled="true"  
     android:layout_toRightOf="@id/shinButton"  
      android:id="@+id/dalidButton"  
      android:layout_width="wrap_content"  
      android:layout_gravity="center_horizontal|center_vertical|center"  
      android:layout_height="35dip"  
      android:text="@string/Dalid"  
      android:layout_alignWithParentIfMissing="true"  
      android:fitsSystemWindows="true"
      />  
      <Button  
      android:layout_alignWithParentIfMissing="true"  
      android:layout_centerHorizontal="true"  
    android:soundEffectsEnabled="true"  
      android:id="@+id/gimleButton"  
      android:layout_toRightOf="@id/dalidButton"  
      android:layout_width="wrap_content"  
      android:layout_gravity="center_horizontal|center_vertical|center"  
      android:layout_height="35dip"  
      android:text="@string/Gimle"  
      android:fitsSystemWindows="true"
      />  
      <Button  
      android:layout_alignWithParentIfMissing="true"  
      android:layout_centerHorizontal="true"  
    android:soundEffectsEnabled="true"  
      android:id="@+id/chufButton"  
      android:layout_toRightOf="@id/gimleButton"  
      android:layout_width="wrap_content"  
      android:layout_gravity="center_horizontal|center_vertical|center"  
      android:layout_height="35dip"  
      android:text="@string/Chuf"  
      android:fitsSystemWindows="true"
      />  
      <Button  
      android:layout_alignWithParentIfMissing="true"  
      android:layout_centerHorizontal="true"  
    android:soundEffectsEnabled="true"  
      android:id="@+id/ieyinButton"  
      android:layout_toRightOf="@id/chufButton"  
      android:layout_width="wrap_content"  
      android:layout_height="35dip"  
      android:layout_gravity="center_horizontal|center_vertical|center"  
      android:text="@string/Ieyin"  
      android:fitsSystemWindows="true"
      />  
      <Button  
      android:layout_alignWithParentIfMissing="true"  
      android:layout_centerHorizontal="true"  
    android:soundEffectsEnabled="true"  
      android:id="@+id/yudButton"  
      android:layout_toRightOf="@id/ieyinButton"  
      android:layout_width="wrap_content"  
      android:layout_height="35dip"  
      android:layout_gravity="center_horizontal|center_vertical|center"  
      android:text="@string/Yud"  
      android:fitsSystemWindows="true"
      />  
      <Button  
      android:layout_alignWithParentIfMissing="true"  
      android:layout_centerHorizontal="true"  
      android:soundEffectsEnabled="true"  
      android:id="@+id/chetButton"  
      android:layout_toRightOf="@id/yudButton"  
      android:layout_width="wrap_content"  
      android:layout_height="35dip"  
      android:layout_gravity="center_horizontal|center_vertical|center"  
      android:text="@string/Chet"  
      android:fitsSystemWindows="true"
      />  
      <Button  
      android:layout_alignWithParentIfMissing="true"  
      android:layout_centerHorizontal="true"  
    android:soundEffectsEnabled="true"  
      android:id="@+id/lamidButton"  
      android:layout_toRightOf="@id/chetButton"  
      android:layout_width="wrap_content"  
      android:layout_height="35dip"  
      android:layout_gravity="center_horizontal|center_vertical|center"  
      android:text="@string/Lamid"  
      android:fitsSystemWindows="true"
      />  
      <Button  
      android:layout_alignWithParentIfMissing="true"  
      android:layout_centerHorizontal="true"  
      android:soundEffectsEnabled="true"  
      android:id="@+id/chufSofitButton"  
      android:layout_toRightOf="@id/lamidButton"  
      android:layout_width="wrap_content"  
      android:layout_height="35dip"  
      android:layout_gravity="center_horizontal|center_vertical|center"  
      android:text="@string/ChufSofit"  
      android:fitsSystemWindows="true"
      />  
      <Button  
      android:layout_alignWithParentIfMissing="true"  
      android:layout_centerHorizontal="true"  
      android:soundEffectsEnabled="true"  
      android:id="@+id/paySofitButton"  
      android:layout_toRightOf="@id/chufSofitButton"  
      android:layout_width="wrap_content"  
      android:layout_height="35dip"  
      android:layout_gravity="center_horizontal|center_vertical|center"  
      android:text="@string/PaySofit"  
      android:fitsSystemWindows="true"
      />  
      </RelativeLayout>  
      </TableRow>  
      <TableRow android:layout_width="fill_parent"  
      android:layout_height="fill_parent"  
      android:layout_gravity="center_horizontal|center_vertical|center"  
      android:fitsSystemWindows="true"  
      android:orientation="horizontal">  
      <LinearLayout android:layout_width="fill_parent"  
      android:layout_height="fill_parent"  
      android:layout_gravity="center_horizontal|center"  
      android:gravity="bottom"  
      android:orientation="horizontal">  
      <Button  
     android:soundEffectsEnabled="true"  
      android:id="@+id/zionButton"  
      android:layout_width="wrap_content"  
      android:layout_gravity="center_horizontal|center_vertical|center"  
      android:layout_height="35dip"  
      android:text="@string/Zion"  
      android:fitsSystemWindows="true"
      />  
      <Button  
    android:soundEffectsEnabled="true"  
      android:id="@+id/samichButton"  
      android:layout_width="wrap_content"  
      android:layout_gravity="center_horizontal|center_vertical|center"  
      android:layout_height="35dip"  
      android:text="@string/Samich"  
      android:fitsSystemWindows="true"
      />  
      <Button  
    android:soundEffectsEnabled="true"  
      android:id="@+id/betButton"  
      android:layout_width="wrap_content"  
      android:layout_gravity="center_horizontal|center_vertical|center"  
      android:layout_height="35dip"  
      android:text="@string/Bet"  
      android:fitsSystemWindows="true"
      />  
      <Button  
    android:soundEffectsEnabled="true"  
      android:id="@+id/heyButton"  
      android:layout_width="wrap_content"  
      android:layout_gravity="center_horizontal|center_vertical|center"  
      android:layout_height="35dip"  
      android:text="@string/Hey"  
      android:fitsSystemWindows="true"
      />  
      <Button  
    android:soundEffectsEnabled="true"  
      android:id="@+id/nunButton"  
      android:layout_width="wrap_content"  
      android:layout_height="35dip"  
      android:layout_gravity="center_horizontal|center_vertical|center"  
      android:text="@string/Nun"  
      android:fitsSystemWindows="true"
      />  
      <Button  
    android:soundEffectsEnabled="true"  
      android:id="@+id/memButton"  
      android:layout_width="wrap_content"  
      android:layout_height="35dip"  
      android:layout_gravity="center_horizontal|center_vertical|center"  
      android:text="@string/Mem"  
      android:fitsSystemWindows="true"
      />  
      <Button  
    android:soundEffectsEnabled="true"  
      android:id="@+id/tzadiButton"  
      android:layout_width="wrap_content"  
      android:layout_height="35dip"  
      android:layout_gravity="center_horizontal|center_vertical|center"  
      android:text="@string/Tzadi"  
      android:fitsSystemWindows="true"
      />  
      <Button  
    android:soundEffectsEnabled="true"  
      android:id="@+id/tuffButton"  
      android:layout_width="wrap_content"  
      android:layout_height="35dip"  
      android:layout_gravity="center_horizontal|center_vertical|center"  
      android:text="@string/Tuff"  
      android:fitsSystemWindows="true"
      />  
      <Button  
      android:soundEffectsEnabled="true"  
      android:id="@+id/tzadiSofitButton"  
      android:layout_width="wrap_content"  
      android:layout_height="35dip"  
      android:layout_gravity="center_horizontal|center_vertical|center"  
      android:text="@string/TzadiSofit"  
      android:fitsSystemWindows="true"
      />  
      </LinearLayout>  
      </TableRow>  
      <TableRow android:layout_width="fill_parent"  
      android:layout_height="fill_parent"  
      android:layout_gravity="center_horizontal|center_vertical|center"  
      android:fitsSystemWindows="true"  
      android:orientation="horizontal">  
      <LinearLayout android:layout_width="fill_parent"  
      android:layout_height="fill_parent"  
      android:layout_gravity="center_horizontal|center"  
      android:gravity="bottom"  
      android:orientation="horizontal">  
      <Button  
    android:soundEffectsEnabled="true"  
      android:id="@+id/hebrewBackButton"  
      android:layout_width="wrap_content"  
      android:layout_height="35dip"  
      android:layout_gravity="right"  
      android:fitsSystemWindows="true"  
       android:text="&lt;--"/>  
      <Button  
    android:soundEffectsEnabled="true"  
      android:id="@+id/hebrewSpaceButton"  
      android:layout_width="150dip"  
      android:layout_height="35dip"  
      android:layout_gravity="center_horizontal|center_vertical|center"  
      android:text=""  
      android:fitsSystemWindows="true"
      />  
      <Button  
    android:soundEffectsEnabled="true"  
      android:id="@+id/hebrewDoneButton"  
      android:layout_width="wrap_content"  
      android:layout_height="wrap_content"  
      android:layout_gravity="right"  
      android:text="Done"  
      android:fitsSystemWindows="true"
      />  
      </LinearLayout>  
      </TableRow>  
    </TableLayout>
    </TableLayout>
    </FrameLayout>`
    

    这是一幅关于它在肖像和风景中的样子的图片:
    enter image description here

    enter image description here

0 个答案:

没有答案