標籤:android api
上一節介紹了天氣預報小DEMO的製作,有些人就覺得打拚音不符合使用者的習慣,怎麼改成打漢字並且可以實現功能呢?這裡就要用到漢字轉全拼,這時我們就要引入jar包:
http://download.csdn.net/detail/yayun0516/8706403
將jar包解壓後匯入我們的工程:(匯入方法自行百度)
然後我們編寫我們的布局檔案:
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <EditText android:id="@+id/edit" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="南京" /> <Button android:id="@+id/transfomer" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="轉換" /> <TextView android:id="@+id/show" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="" /></LinearLayout>
編寫工具類:
package com.lzg.hanzitopinyin;import net.sourceforge.pinyin4j.PinyinHelper;import net.sourceforge.pinyin4j.format.HanyuPinyinCaseType;import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat;import net.sourceforge.pinyin4j.format.HanyuPinyinToneType;import net.sourceforge.pinyin4j.format.HanyuPinyinVCharType;import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination;public class HanZiToPinYin {/** * 返回一個字的拼音 * @param hanzi * @return */public static String toPinYin(char hanzi){HanyuPinyinOutputFormat hanyuPinyin = new HanyuPinyinOutputFormat(); hanyuPinyin.setCaseType(HanyuPinyinCaseType.LOWERCASE); hanyuPinyin.setToneType(HanyuPinyinToneType.WITHOUT_TONE);//沒有聲調 hanyuPinyin.setVCharType(HanyuPinyinVCharType.WITH_U_UNICODE); String[] pinyinArray=null; try { //是否在漢字範圍內 if(hanzi>=0x4e00 && hanzi<=0x9fa5){ //pinyinArray = PinyinHelper.toHanyuPinyinStringArray(hanzi, hanyuPinyin); pinyinArray = PinyinHelper.toHanyuPinyinStringArray(hanzi, hanyuPinyin); } } catch (BadHanyuPinyinOutputFormatCombination e) { e.printStackTrace(); } //將漢字返回return pinyinArray[0];}}
編寫activity:
package com.lzg.hanzitopinyin;import android.app.Activity;import android.graphics.Color;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;import android.widget.TextView;public class TestActivity extends Activity {/** Called when the activity is first created. */EditText editText;TextView tView;Button trbButton;String pinyin;String hanziString;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);editText = (EditText) findViewById(R.id.edit);tView = (TextView) findViewById(R.id.show);trbButton = (Button) findViewById(R.id.transfomer);trbButton.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View arg0) {hanziString = editText.getText().toString();pinyin = getPinyin(hanziString);tView.setText("拼音:" + pinyin + "\n" + "漢字:" + hanziString);}});}private String getPinyin(String hanzi) {String pinyin = "";for (int i = 0; i < hanzi.length(); i++) {pinyin += HanZiToPinYin.toPinYin(hanzi.charAt(i));}return pinyin;}}
運行執行個體如下:
最後:
我的應用程式: http://openbox.mobilem.360.cn/index/d/sid/2966005
http://android.myapp.com/myapp/detail.htm?apkName=com.yayun.gitlearning
歡迎下載,有問題多交流,討論謝謝!
Android--漢字轉全拼