中文模式下进入图库第一个界面来查看所有的相册集,按home键,设置手机语言为英文后,再回到图库中查看相册的名称仍然为中文。如何在手机更改语言后图库中相册的名称也进行语言更新
1、google default的设计是在创建各个album的构造函数中会根据资源类型来获取相册的名称,因此当图库暂停(执行了onPause)又再次进入时,语言并不会及时更新。
2、修改思路是:当再次进入图库时,根据相应资源类型重新获取相册的名称。具体修改方法如下:
(1) Gallery2\src\com\android\gallery3d\data\LocalMergeAlbum.javaLocalMergeAlbum.java中:
@Override
public String getName() {
mName = mSources.length == 0 ? "" : mSources[0].getName();
return mName;
}
(2) Gallery2\src\com\android\gallery3d\data\LocalAlbum.java中:
第一处修改: 定义一个String变量:
private String mTempName;
第二处修改:在LocalAlbum的构造方法中:
public LocalAlbum(Path path, GalleryApp application, int bucketId, boolean isImage, String name) {
...
mName = getLocalizedName(application.getResources(), bucketId, name);
mTempName = mName; ...
}
第三处修改:添加方法refreshName()
public void refreshName(String Name){
mTempName = getLocalizedName(mApplication.getResources(),mBucketId,Name);
}
第四处修改:getName()方法中:
@Override
public String getName() {
refresh(mTempName);
// return mName;
return mTempName;
}