楼主:
Ferich (纯粹的透明)
2015-05-15 10:20:13请问 如何切换ImageButton的图片
我知道这个问题 肯定是秒解 但是加上一些环境
我先解释一下
这功能是在切换语系后发生的
A.activity 有个button intent 到 B.activity
B可以切换语系
Resources res = getResources();
Configuration conf = res.getConfiguration();
conf.locale = lo;
if(language.equals("AUTO"))
{
conf.locale =Resources.getSystem().getConfiguration().locale;
}
DisplayMetrics dm = res.getDisplayMetrics();
res.updateConfiguration(conf, dm);
内容大概是这样
然后在res/drawable-xdhpi 与drawable-zh-rTW-xhdpi 内
各放置了一样档名 但是图片内容不一样的图片
假设目前是系统默认的英文 切到B 设置成繁中
然后使用 srart intent from B to A 还把 B finish()掉
有的手机回到A 可以正确显示中文 但某几支手机 就还是英文..
他似乎抓不太到 切换语言档的部分
但是文字的部分 就没问题 主要是图片 无法切换
但是切换完后 重开 app 每一只手机都可以正常抓到语言设定
请问我是忽略了哪一个部分?
感谢各位开发者看完 落落长的问题
楼主:
Ferich (纯粹的透明)
2015-05-15 10:33:00btw A-B 也是 startintent 过去的 然后 A finish()
作者:
zxc190 (卡卡)
2015-05-15 10:38:00不能换的那个是不是5.0的版本?
楼主:
Ferich (纯粹的透明)
2015-05-15 11:13:004.4.45.0 也有这个问题...
楼主:
Ferich (纯粹的透明)
2015-05-15 11:53:00正常,重点是 change locale 后 重新长出的activityresource 的路径不会转换... 重开 是没问题的
作者:
zxc190 (卡卡)
2015-05-15 12:05:00有遇过sharepreference忘了commit 所以一直抓到上一次的
楼主:
Ferich (纯粹的透明)
2015-05-15 12:10:00zxc大 是某些手机就是无法切换 但是string的部分都正常erttyy大 原本不是用finish 是call static function去set是无法作用的... 这些方法在我的 oneplusone都是正常的
作者:
zxc190 (卡卡)
2015-05-15 12:20:00还是图片太大显示不出来@@?或者是那台手机不是drawable-xdhpi 所以一直抓默认的
我的意思是你activity的资料都还是keep在旧资料你的叙述是A->B->A 所以有可能回到A的时候其实你的A只是推向了后台,而不是整个重置可以先检查看看是不是因为这样导致资料还是上一个语系我猜你从onactivityresult下手应该可以找到问题
楼主:
Ferich (纯粹的透明)
2015-05-15 12:47:00A-B A.finish() B-A B.finish() string的部分都有切换就图片resource的部分 还是旧的
public void finish (): Call this when youractivity is done and "should" be closed.查一下是不是真的关闭了
楼主:
Ferich (纯粹的透明)
2015-05-15 13:16:00我是使用 按实体 back键 他会退回到桌面的方式测试的我刚查过了 有确实 finish掉而且 B 设定完后 intent to A,图片还是原语言 字是对的此时又从 A->B B不错任何设定 又B->A.. 图片跟文字都对了
作者: KeySabre (KeySabreur) 2015-05-15 21:05:00
试过从 onConfigurationChanged 下手吗
作者: charlesdc (MoOn) 2015-05-16 21:13:00
正确做法应该是所有的resource都从getResource取才对
楼主:
Ferich (纯粹的透明)
2015-05-18 10:26:00我想 我应该是正确的做法 但是某些手机 其实就一台Infocus M210 不适用...