【问题标题】:auto resizing textView with different density devices android使用不同密度设备android自动调整textView的大小
【发布时间】:2012-11-29 18:55:29
【问题描述】:

在我的应用程序的顶部,我有一个应该显示在中间的标题,右侧是一个按钮。由于 textViews 的长度在我的控制范围之内,有时我的标题会因为内容的长度过长而穿过按钮。

在关注this 之后,我倾向于以某种方式解决问题。我的设备是 HTC 的愿望。不幸的是,如果我使用 Galaxy SIII 进行检查,它并不能解决问题。

我想知道如何针对具有不同密度的不同设备进行管理。

我在相对布局中的控件

【问题讨论】:

    标签: android textview autoresize autoscaling


    【解决方案1】:

    你也可以通过这个查看设备屏幕密度--

        WindowManager wm = (WindowManager) _context.getSystemService(Context.WINDOW_SERVICE);
        Display display = wm.getDefaultDisplay();
        int screenWidth = display.getWidth();
        int screenHeight = display.getHeight();
    

    并且可以相应地管理您需要的应​​用程序..

    【讨论】:

    • 我需要 textView 的大小,对吗?但是我无法在 onCreate 方法中获取 textView 的大小,以便我按照你提到的 screenHeight 工作。它返回 0。
    • 使用 textView.getMeasuredWidth();..它会给你文本视图的宽度并进行相应的计算。
    • 我应该在 onCreate() 方法中分别设置一个 text 和 textSize,如果你使用 getMeasuredWidth 它返回 0,我相信跨度>
    【解决方案2】:

    只需在您的 xml 中使用 weightsum 并将所有视图的宽度设置为填充父级.....这将使您的 textview 自动调整大小

    【讨论】:

    • 正如我首先没有提到的,我使用的是相对布局,它不需要 weightSum。
    • ohhhh ....实际上android中最灵活的布局是linearlayout ...如果您可以更改而不是将其转换为linearlayout
    【解决方案3】:

    您可以根据其 DPI 维护布局 在 XHDPI 中复制相同的 XML 数据(因为 S3 属于 XHDPI)并测试它类似地在 HDPI 中复制 XML 数据 但 请记住layOut的以下Thing Pixel Ratio 关注

    在 LDPI 中为 1:0.75 在 MDPI 中其 1:1 在 HDPI 中为 1:1.5 在 XHDPI 中为 1:2

    【讨论】:

      【解决方案4】:
      Display display = ((WindowManager) ctx.getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();
      DisplayMetrics dm = new DisplayMetrics();
      display.getMetrics(dm);
      float density = dm.density; 
      int screenWidth = display.getWidth();
      

      使用上面的代码,您的屏幕密度将为浮动。因此您可以使用它来计算 textView 的宽度,例如:

      int newWidth = (int) (density * 100);
      

      这里的 100 是基于大小的。 或者你可以根据你的 screenWdith 设置一个比例。

      int newWidth = screenWidth / 2;
      

      【讨论】:

      • 我在想像 setTextSize() 而不是 setWidth()
      • 好的,所以你希望你的文本被完全看到......并且你不需要将它放置在任何特定的地方?
      • 是的。中间就好了。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-01
      • 1970-01-01
      相关资源
      最近更新 更多