【问题标题】:Auto fit Screen in android When changing Orientation更改方向时在android中自动适应屏幕
【发布时间】:2012-11-28 08:39:22
【问题描述】:

有没有办法在改变方向时自动适应屏幕?

因为当我在纵向模式下查看我的应用程序时,所有图像似乎都很好,但是当我将其更改为横向时,图像变得像素化或被拉伸了很多。所以我想知道是否有自动调整屏幕。

感谢您的任何想法。

【问题讨论】:

  • 尝试使用 layout_weight="1"
  • 我认为您的图像设置为“FIT_XY”。尝试将 fit 设置为 FIT_CENTER。作为第二种可能性,您可以为横向创建第二个布局,因此您可以根据需要重新设计布局。
  • 如何检查方向是否已更改?

标签: android


【解决方案1】:

在 layout-land 文件夹中指定具有相同名称的不同布局并使用合适的可绘制对象。 如需更多帮助,请参阅本教程

http://www.androidpeople.com/android-portrait-amp-landscape-differeent-layouts

【讨论】:

  • 如何检查方向是否已更改?
  • 如果你这样做,那么操作系统会根据方向自动渲染布局
  • 顺便说一句,这就是你如何在运行时获得方向:Display display = ((WindowManager) getSystemService(WINDOW_SERVICE)).getDefaultDisplay(); int 方向 = display.getOrientation();
【解决方案2】:
Display display;
int width;
int height;

在 onCreate() 中添加 宽度 = display.getWidth(); 高度 = display.getHeight();

在 onResume() 中添加

if(width<height){
 //you can add your layout here (landscape)
}else{
    //you can add your layout here (portrait)
}

【讨论】:

    【解决方案3】:

    您必须有两种布局,一种用于纵向,另一种用于横向。如果您使用两种布局,则可以使用相同的图像。

    【讨论】:

    • 如何检查方向是否已更改?
    • 显示显示;int 宽度;int 高度;width = display.getWidth();高度 = display.getHeight();
    【解决方案4】:

    有两种可能,

    选项 1: 您可以在 layout-portlayout-landdrawabledrawable-land 中使用不同的 XML 布局。在这些 XML 布局中,您可以修复与您的屏幕密度匹配的不同大小的图像。对于不同的图像集,您可以查看ldpi,mdpi,hdpi,xhdpi

    选项 2:您可以使用九个补丁图像。

    如果您找到更好的解决方案,请分享。

    干杯。

    【讨论】:

    【解决方案5】:

    您可以使用以下sn -p来识别配置已更改

    @Override
    public void onConfigurationChanged(Configuration newConfig) {
        super.onConfigurationChanged(newConfig);
    
     // Checks the orientation of the screen and do your action here
    
    }
    

    干杯。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多