作者sorrel20567 (嗨)
看板AndroidDev
标题[问题] 随着直放横放即时改变配置xml
时间Wed Oct 19 01:15:12 2011
对不起我问题有点多...(一次发两篇)
想请问一下有没有大大有写过类似的程式
因为手机很灵敏,摆直的摆横的会显示同一个layout的样式
但太复杂的外观没办法做到一种layout直的横的都很好看
於是我决定写两个(一个for直,一个for横)
小弟我有参考android范例大全5-22的方法再改写
我设一个timer,createActivity後timer每0.1秒会call
这个函式
@Override
public int getRequestedOrientation()
{
/* 此覆写getRequestedOrientation方法,可取得当下萤幕的方向 */
return super.getRequestedOrientation();
}
取得当前银幕的直横方向
再把直或横的值传给
@Override
public void setRequestedOrientation(int requestedOrientation)
{
switch(requestedOrientation)
{
case (ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE):
setContentView(R.layout.land);
break;
case (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT):
setContentView(R.layout.port);
break;
}
super.setRequestedOrientation(requestedOrientation);
}
这函式
估计它会自动切换xml档达成效果
但事情没我想的那麽简单....
用timer除了让程式很lag之外(可能手机比较旧)
也没达成我想要切直切横的目的...
程式而是一直会显示一开始onCreate里设的那个layout
不会再有改变
但是只要手机一转方向,layout虽然不变
但整个摆设还是会变得很丑
是不是一定要改写底层才有办法达到我想要的效果
下下策就是固定程式直向横向了
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.115.158.190
1F:推 LaPass:从直的变横的会呼叫onResume()你可以在那边setContentView 10/19 08:04
2F:→ sorrel20567:请问onResume时要再自己判断它是直是横吗? 10/19 14:23
3F:推 LaPass:对 10/19 14:58
4F:→ azxswq000:android:screenOrientation="sensor" 然後再去判断横直 10/19 17:02
5F:→ azxswq000:来设定不同的layout 10/19 17:03
6F:→ kunyu1976:可以去developer.android.com查Providing Resources 10/19 18:10