安卓系統語言添加
雖然Android從2.3開始已經支持50種以上的語言,但是不是每種語言都有字體可以顯示。
遇到一個新需求,有客戶要求對hindi語言的支持。于是上網找了一些資料,發現網上介紹的大部分是如何替換默認字體,就是替換./frameworks/base/data/fonts/*,但是替換完之后,中文就無法正常顯示。
其實只要有下面幾個步驟,就可以實現新曾加一種語言的顯示支持:1. 需要有可以顯示hindi語言的字體,我在網上下載了一個:*2. 需要修改的地方主要有 1) 將下載的字體文件拷貝到:./frameworks/base/data/fonts/ 2) 修改./frameworks/base/data/fonts/*,將*添加到copy_from: copy_from := \ * \ * \ * \ * \ * \ * \ * \ * \ * \ * \ * \ * 3) Hindi的語言代碼是hi_IN,修改./device/qcom/common/*,將hindi的語言代碼加進去,這樣在你的設置->語言和鍵盤->選擇語言里面就可以看見hindi語言了:PRODUCT_LOCALES := en_US en_GB es_ES es_US fr_FR zh_CN zh_TW hi_IN it_IT pt_PT ru_RU 4) 修改./external/skia/src/ports/SkFontHost_*,將*加進去。網上介紹的很多方法都沒有提到這一步,如果沒有這一步的話,添加的語言是不生效的,顯示的是亂碼,因為android無法找到hindi語言可以顯示的字體,還是會選擇默認字體去顯示。
修改的地方為:/* Fonts must be grouped by family, with the first font in a family having the list of names (even if that list is empty), and the following members having null for the list. The names list must be NULL-terminated*/static const FontInitRec gSystemFonts[] = { { "*", gSansNames }, { "*", NULL }, { "*", gSerifNames }, { "*", NULL }, { "*", NULL }, { "*", NULL }, { "*", gMonoNames }, /* These are optional, and can be ignored if not found in the file system. These are appended to gFallbackFonts[] as they are seen, so we list them in the order we want them to be accessed by NextLogicalFont(). */ { "*", gFBNames }, { "*", gFBNames }, { "*", gFBNames }, { "*", gFBNames }, // 新添加的語言 { "*", gFBNames }, // Motoya Japanese Font { "*", gFBNames }, // Motoya Japanese Font { "*", gFBNames }, { "*", gFBNames }}; 5) 去./build/target/product/*看看系統選擇的是哪個語言列表,我的是: $(call inherit-product, build/target/product/languages_*) 那我就去修改./build/target/product/languages_*,若這里顯示的是languages_*,那么就修改./build/target/product/languages_*文件,修改如下: PRODUCT_LOCALES := en_US en_GB fr_FR hi_IN it_IT de_DE es_ES3. 剩下的就是重新編譯一下,然后flash到手機或模擬器上就可以了。設置頁面:打開一個Hindi的網頁,hindi語言可以正常顯示了:http://**melaniedeng/archive/2012/02/15/*。
安卓系統語言添加
雖然Android從2.3開始已經支持50種以上的語言,但是不是每種語言都有字體可以顯示。
遇到一個新需求,有客戶要求對hindi語言的支持。于是上網找了一些資料,發現網上介紹的大部分是如何替換默認字體,就是替換./frameworks/base/data/fonts/*,但是替換完之后,中文就無法正常顯示。
其實只要有下面幾個步驟,就可以實現新曾加一種語言的顯示支持:1. 需要有可以顯示hindi語言的字體,我在網上下載了一個:*2. 需要修改的地方主要有 1) 將下載的字體文件拷貝到:./frameworks/base/data/fonts/ 2) 修改./frameworks/base/data/fonts/*,將*添加到copy_from: copy_from := \ * \ * \ * \ * \ * \ * \ * \ * \ * \ * \ * \ * 3) Hindi的語言代碼是hi_IN,修改./device/qcom/common/*,將hindi的語言代碼加進去,這樣在你的設置->語言和鍵盤->選擇語言里面就可以看見hindi語言了:PRODUCT_LOCALES := en_US en_GB es_ES es_US fr_FR zh_CN zh_TW hi_IN it_IT pt_PT ru_RU 4) 修改./external/skia/src/ports/SkFontHost_*,將*加進去。網上介紹的很多方法都沒有提到這一步,如果沒有這一步的話,添加的語言是不生效的,顯示的是亂碼,因為android無法找到hindi語言可以顯示的字體,還是會選擇默認字體去顯示。
修改的地方為:/* Fonts must be grouped by family, with the first font in a family having the list of names (even if that list is empty), and the following members having null for the list. The names list must be NULL-terminated*/static const FontInitRec gSystemFonts[] = { { "*", gSansNames }, { "*", NULL }, { "*", gSerifNames }, { "*", NULL }, { "*", NULL }, { "*", NULL }, { "*", gMonoNames }, /* These are optional, and can be ignored if not found in the file system. These are appended to gFallbackFonts[] as they are seen, so we list them in the order we want them to be accessed by NextLogicalFont(). */ { "*", gFBNames }, { "*", gFBNames }, { "*", gFBNames }, { "*", gFBNames }, // 新添加的語言 { "*", gFBNames }, // Motoya Japanese Font { "*", gFBNames }, // Motoya Japanese Font { "*", gFBNames }, { "*", gFBNames }}; 5) 去./build/target/product/*看看系統選擇的是哪個語言列表,我的是: $(call inherit-product, build/target/product/languages_*) 那我就去修改./build/target/product/languages_*,若這里顯示的是languages_*,那么就修改./build/target/product/languages_*文件,修改如下: PRODUCT_LOCALES := en_US en_GB fr_FR hi_IN it_IT de_DE es_ES3. 剩下的就是重新編譯一下,然后flash到手機或模擬器上就可以了。設置頁面:打開一個Hindi的網頁,hindi語言可以正常顯示了:http://**melaniedeng/archive/2012/02/15/*。
安卓多國語言如何添加
雖然Android 從 2.3 開始已經支持50種以上的語言,但是不是每種語言都有字體可以顯示。
遇到一個新需求,有客戶要求對 hindi 語言的支持。于是上 網找了一些資料,發現網上介紹的大部分是如何替換默認字體,就是替換./frameworks/base/data/fonts /*,但是替換完之后,中文就無法正常顯示。
其實只要有下面幾個步驟,就可以實現新曾加一種語言的顯示支持:1. 需要有可以顯示 hindi 語言的字體,我在網上下載了一個:*2. 需要修改的地方主要有 1 ) 將下載的字體文件拷貝到:./frameworks/base/data/fonts/ 2 ) 修改./frameworks/base/data/fonts/*,將 * 添加到 copy_from: 3 ) Hindi 的語言代碼是 hi_IN,修改./device/qcom/common/*,將 hindi 的語言代碼加進去,這樣在你的設置->語言和鍵盤->選擇語言里面就可以看見 hindi 語言了: 4 ) 修改./external/skia/src/ports/SkFontHost_*,將 * 加進去。網上 介紹的很多方法都沒有提到這一步,如果沒有這一步的話,添加的語言是不生效的,顯示的是亂碼,因為 android 無法找到 hindi 語言可以顯示的字體, 還是會選擇默認字體去顯示。
修改的地方為: 5 ) 去./build/target/product/* 看看系統選擇的是哪個語言列表,我的是: $(call inherit-product, build/target/product/languages_*) 那我就去修改./build/target/product/languages_*,若這里顯示的是 languages_*,那么就修改./build/target/product/languages_* 文件,修改如下: PRODUCT_LOCALES := en_US en_GB fr_FR hi_IN it_IT de_DE es_ES 6) 在 external/icu4c/studata 下的 * 下添加 $(if $(findingstring hi,$(PRODUCT_LOCALS)),large)\3. 剩下的就是重新編譯一下,然后 flash 到手機或模擬器上就可以了。
android添加背景音樂代碼,越詳細越好
可以通過Service來播放背景音樂,以下是實現代碼:
1.在*文件中的<application>;標簽內加入下邊語句
<service android:name=".MusicServer">
<intent-filter>
<action android:name="*"/>
<category android:name="*t" />
</intent-filter>
</service>
2.新建*類,內容為
import *e;
import *;
import *layer;
import *r;
public class MusicServer extends Service {
private MediaPlayer mediaPlayer;
@Override
public IBinder onBind(Intent intent) {
// TODO Auto-generated method stub
return null;
}
@Override
public void onStart(Intent intent,int startId){
*t(intent, startId);
if(mediaPlayer==null){
// *是資源文件,MP3格式的
mediaPlayer = *(this, *);
*ping(true);
*();
}
}
@Override
public void onDestroy() {
// TODO Auto-generated method stub
*roy();
*();
}
}
3.將歌曲放入raw文件夾下,名稱為abc。
4.在Activity中加入代碼
private Intent intent = new Intent("*");
onCreate方法中加入startService(intent);
就可以播放了。