【问题标题】:Creating small absolute size views创建小的绝对尺寸视图
【发布时间】:2013-11-12 12:40:07
【问题描述】:

我正在开发一个旨在在单一尺寸屏幕上运行的应用程序,并且设计非常复杂,因此为了让事情变得更容易,我正在使用绝对尺寸来处理所有内容。

当我为视图指定一个非常小的尺寸时,问题就开始了,Android 似乎没有使内容适应这些小尺寸。我这里有 3 个例子:

  • 90x70px EditText: 虽然我使用了小字体,但文本没有很好地居中...如何居中?
  • 200x80px Spinner: 右边有很多可用空间。我该如何使用它?
  • 50x50px CheckBox: 我们只看到一个角而不是整个框...为什么?

【问题讨论】:

  • 这里的问题是android框架中的默认资源。对于edittext,它是一个带有内部填充的9-patch。您需要添加自己的图像而不使用此类填充。您可以在 AOSP 中找到原始资源。
  • 对于edittext试试edittext.setGravity(Gravity.CENTER_VERTICAL); edittext.setGravity(Gravity.CENTER_HORIZONTAL);

标签: android layout view


【解决方案1】:

Android 似乎无法使内容适应这些小尺寸

在达到特定的最小尺寸后,Android 不会采用,我强烈建议您考虑使用 ScrollView 并更改布局,但如果您仍然坚持,请尝试以下操作:

  • EditText的背景设置为null,你就会明白这都是因为9个补丁背景的填充。之后转到Android Asset Studio 并创建更小的背景,或者您也可以在 xml drawable 中执行此操作,检查此link。要使文本居中,请在 EditText 上使用 android:gravity="center"

  • 与上述相同的 9 补丁背景问题,以这种方式制作微调器的免费图像以在添加某些填充后将其内容放在箭头的左侧。尝试将背景设置为您的自定义少填充 9 补丁。

  • 同样的问题,只是为您的CheckBox 制作更小的可绘制对象。请咨询link

【讨论】:

    【解决方案2】:

    您是否尝试过使用填充?我使用负值将控件移出屏幕。填充可能也是如此?祝你好运

    【讨论】:

      【解决方案3】:

      尝试在 TextView 派生类中使用以下覆盖...对我有用:

          @Override
          public int getCompoundPaddingTop() {
              return 1;
          }
      
          @Override
          public int getCompoundPaddingBottom() {
              return 1;
          }
      
          @Override
          public int getCompoundPaddingLeft() {
              return 1;
          }
      
          @Override
          public int getCompoundPaddingRight() {
              return 1;
          }
      

      【讨论】:

        【解决方案4】:
        • Android 不支持这些小视图,因为它使用了它的 内在价值作为默认值。我也建议你做一些 更大的意见。对用户来说也会更好。
        • 当你设计一些视图时,用户视角是非常重要的因素。在设计 UI 时,您应该始终牢记用户。

        除此之外,如果您还想使用这些东西,请按照以下步骤操作:

        • 要使文本居中,请在 EditText 中使用 android:gravitycenter
        • 为您的复选框和微调器使用较小的可绘制对象
        • 您还可以在可绘制文件夹中以 XML 格式制作自定义形状,并将其用作视图的背景。还将填充 1 或负数设置为最佳结果。

        【讨论】:

          猜你喜欢
          • 2019-01-13
          • 2010-10-15
          • 1970-01-01
          • 2020-12-30
          • 1970-01-01
          • 2016-07-07
          • 2014-12-04
          • 1970-01-01
          • 2016-01-07
          相关资源
          最近更新 更多