如果手机处于横向模式,我的应用会通过加速计识别出这一点 (我使用加速度计,因为我确实有3个不同的方向和其他值的变化)。 我使用以下代码更改方向:
myLayout.setBackgroundResource(R.drawable....); setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
当方向改变时,我会看到一个扭曲的图像几秒钟。这样做的原因显然是在更改方向之前更改了BackgroundRessource。
我试图使用layout-land和layout-port文件夹,结果是我在横向方向上始终是一个扭曲的图像。
我该如何避免这种情况?
答案 0 :(得分:0)
我有一个类似的问题,除了我切换到横向时只是黑屏。看到有人提到创建一个可能对你有用的新的drawable-land文件夹......对我来说没什么用。
我自己从这里的成员那里得到了这个答案。试一试。
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
LinearLayout linearLayout = (LinearLayout)findViewById(R.id.layout);
Resources res = getResources();
Drawable portrait = res.getDrawable(R.drawable.portrait);
Drawable landscape = res.getDrawable(R.drawable.landscape);
WindowManager window = (WindowManager)getSystemService(WINDOW_SERVICE);
Display display = window.getDefaultDisplay();
int num = display.getRotation();
if (num == 0){
linearLayout.setBackgroundDrawable(portrait);
}else if (num == 1 || num == 3){
linearLayout.setBackgroundDrawable(landscape);
}else{
linearLayout.setBackgroundDrawable(portrait);
}
}