2010-12-08 55 views
1

我正在重复一个帖子,我在google group(http://groups.google.com/group/android-developers/browse_thread/thread/78d0b7496a51e3b7#)的android组中发过一篇文章,希望我在这里有一些运气!总是查看横向对话框

我有一项活动显示项目列表。点击一个项目, 我显示一个全屏幕对话框,包含一些按钮和图像。这 看起来不错,但在纵向看起来不太好(由于 图像的纵横比)。我想知道它是否可能以 总是在横向上显示此对话框,而不管当前屏幕的方向是 。在对话结束后,我会将 的方向切换回传感器。这是我到目前为止有:

OnItemClickListener listlistener = new OnItemClickListener() { 
       @Override 
       public void onItemClick(AdapterView parent, View arg1, int position, 
           long arg3) { 
         final Dialog dialog = new Dialog(getParent()); 
         dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); 
         final int orientation = 
getResources().getConfiguration().orientation; 
         if (orientation == 1){ 
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); 
         } 
         dialog.setContentView(R.layout.dialog); 
         dialog.setCancelable(true); 
         ImageView img = (ImageView) dialog.findViewById(R.id.img); //A 
static image for testing UI 
         //BUTTON LISTENERS HERE 
         dialog.show(); 
         dialog.setOnCancelListener(new OnCancelListener() { 
           @Override 
           public void onCancel(DialogInterface dialog) { 
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR); 
           } 
         }); 
       } 
     }; 

但这样做,屏幕第一改变方向,然后尝试 显示对话框。但在方向更改屏幕 重新启动活动,我的对话框不显示。有没有更简单的 方法来做到这一点?我可以使用两种不同的对话框布局,并根据方向加载相应的布局吗?如果是这样,那么 纵向模式的XML会是什么样子? 谢谢!

回答

1

如果您正在使用对话框的自定义布局,只需设计一个新布局并将其放入layout-land文件夹(如果需要的话创建它),这样它将自动加载相应的布局。

+0

也许我没有说清楚。当用户点击一个项目时,如果当前方向是纵向,我希望对话框在全屏中以全屏方式打开。如何以这种方式加载对话框?由于我的图片长度总是大于其高度,因此以纵向模式加载对话框会在图片上方和下方创建大量空白区域。 – WanderingWizard 2010-12-08 18:11:54