【问题标题】:Can I scale a View in Android?我可以在 Android 中缩放视图吗?
【发布时间】:2011-11-29 00:10:24
【问题描述】:

我可以获取一个由 Android 框架渲染的视图并将其重新缩放为其他大小吗?

【问题讨论】:

  • 我不只是想设置视图的大小——我想取一个视图并将其缩小到更小的尺寸,基本上是在放置视图后获取视图的缩略图出来。

标签: android view scale


【解决方案1】:

您需要 API 11 或更高版本才能缩放视图。方法如下:

float scalingFactor = 0.5f; // scale down to half the size
view.setScaleX(scalingFactor);
view.setScaleY(scalingFactor);

【讨论】:

  • 赞美归于上帝。这段小代码对我来说效果非常好! :) 谢谢!
  • 在这种情况下,它被缩放但仍然占据布局中的原始区域!有什么解决办法吗?
  • @HamzehSoboh,我也有同样的问题,找到解决方案了吗?
  • @Pranav 使用布局参数进行缩放,它会调整视图本身并给出相对尺寸。
【解决方案2】:

在你的 XML 中

android:scaleX="0.5"
android:scaleY="0.5"

【讨论】:

    【解决方案3】:

    对于比例,我resize 视图的widthheight 以使其影响区域位置 @987654326 @.
    如果您希望它影响区域和位置,请使用@Gadzair@Taiti 的答案

    private void resize(View view, float scaleX, float scaleY) {
        ViewGroup.LayoutParams layoutParams = view.getLayoutParams();
        layoutParams.width = (int) (view.getWidth() * scaleX);
        layoutParams.height = (int) (view.getHeight() * scaleY);
        view.setLayoutParams(layoutParams);
    }
    

    使用示例

    resize(view, 0.5f, 0.8f);
    

    结果

    Demo

    【讨论】:

    • 动画可以做到这一点吗?
    • 谨慎使用此解决方案。因为 width & height 是 int,scale 是 float -> 如果你关心 width 和 height 的比例,这种方式可能会导致错误的比例。
    猜你喜欢
    • 1970-01-01
    • 2018-12-20
    • 2017-12-26
    • 2011-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-04
    相关资源
    最近更新 更多