Sag*_*ala 4 android android-layout
我创建了一个Android应用程序.
当我运行我的应用程序时,Mobile Phone
它运行得很好,但是当我在Tablet
应用程序的布局中运行时会发生变化.
那么,如何使这是在使用灵敏的Android应用程序Mobile
,并也Tablet
?
在Android上,我们可以使用从Android 3.2引入的屏幕大小选择器来定义要使用的布局.有关详细信息,请访问http://android-developers.blogspot.in/2011/07/new-tools-for-managing-screen-sizes.html.以下代码段已从同一链接中提取:
public class MyActivity extends Activity
{
@Override protected void onCreate(Bundle savedInstanceState)
{
super.onCreate();
Configuration config = getResources().getConfiguration();
if (config.smallestScreenWidthDp >= 600)
{
setContentView(R.layout.main_activity_tablet);
}
else
{
setContentView(R.layout.main_activity);
}
}
}
Run Code Online (Sandbox Code Playgroud)
尺寸配置的另一个好参考是保持分离器.详细解释如下:http://www.vanteon.com/downloads/Scaling_Android_Apps_White_Paper.pdf
我只是在谈论移动响应式设计。对于布局,我相信您目前只能通过以下方式进行区分:
res/layout/my_layout.xml // layout for normal screen size
res/layout-small/my_layout.xml // layout for small screen size
res/layout-large/my_layout.xml // layout for large screen size
res/layout-large-land/my_layout.xml // layout for large screen size in landscape mode
Run Code Online (Sandbox Code Playgroud)
您可以找到有关可以添加到文件夹结构中以区分不同设置文档和android-developers.blogspot 的更多信息
为了适应其他类型的平板电脑和屏幕尺寸,android 引入了一种新方法来为更离散的屏幕尺寸指定资源。新技术基于您的布局需要的空间量(例如 600dp 的宽度),而不是试图使您的布局适合通用尺寸组(例如 large 或 xlarge)。
更新:基本上有两种方法可以利用响应式设计为您的观众提供良好的体验:
优化您的内容布局。
调整显示的内容。
更新 2:在您的活动中编写此代码
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {
setContentView(R.layout.landscapeView);
} else {
setContentView(R.layout.portraitView);
}
Run Code Online (Sandbox Code Playgroud)
并在您的清单文件中添加这一行
android:configChanges="orientation|keyboardHidden|screenSize"
Run Code Online (Sandbox Code Playgroud)
因此,这将处理这两件事,它不会重新启动您的活动,并将根据您的方向更改加载布局。有关更多信息,请访问http://www.codeproject.com/Articles/422431/Handling-screen-layout-changes-in-Android
归档时间: |
|
查看次数: |
31881 次 |
最近记录: |