【问题标题】:Adjusting width & height for view after rotating it by 90 degree in Android在Android中旋转90度后调整视图的宽度和高度
【发布时间】:2016-04-25 05:45:56
【问题描述】:

我想以编程方式添加视图并将其旋转 90 度,但是我不知道如何正确设置其尺寸。

这是我的占位符:

        <FrameLayout
            android:layout_width="40dp"
            android:layout_height="match_parent"
            android:id="@+id/placeholder"
            android:orientation="vertical"
            android:background="@color/green"
            android:layout_weight="1">

这就是我的代码的样子:

    FrameLayout placeholderView = (FrameLayout) findViewById(R.id.placeholder);

    View myView = new View(getApplicationContext());
    myView.setBackgroundColor(Color.RED);
    myView.setRotation(90);
    FrameLayout.LayoutParams layoutParams = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
    myView.setLayoutParams(layoutParams);
    placeholderView.addView(myView);

结果是宽度和高度都得到了相同的值,所以视图看起来像这样:

虽然我希望它在其父级的整个高度上展开。

【问题讨论】:

  • 试试下面的代码,如果它有效,请投票,谢谢:)

标签: android view rotation width programmatically-created


【解决方案1】:

ViewGroup.LayoutParams.FILL_PARENT您好,请您试试这个 而不是这个:

myView.setRotation(90);
FrameLayout.LayoutParams layoutParams = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)

试试这个:

移除 setRotation

FrameLayout.LayoutParams layoutParams = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.FILL_PARENT);

【讨论】:

  • 我无法删除 setRotation。我知道在我的代码中旋转视图是没有意义的,我只是简化了我的代码来演示我遇到的问题。我还注意到 FILL_PARENT 已被弃用。
  • 您需要垂直视图对吗?我试过我的系统工作正常,我删除了 setRotation..即使你可以尝试 XML
  • 我想使用垂直的 SeekBar,所以我必须旋转它。
  • 谢谢。我已经检查了许多垂直 SeekBar 的解决方案,但没有一个能在 RTL 支持下正常工作。我也会检查这个。但我想知道我发布的一般问题是否有解决方案,而不是专门针对 SeekBar,它看起来是一个非常基本的功能,应该在 Android 中支持(旋转视图),并且在我的情况下也可能有用。
猜你喜欢
  • 2014-12-31
  • 1970-01-01
  • 1970-01-01
  • 2012-04-06
  • 1970-01-01
  • 2014-12-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多