Android View的Scale属性不会改变宽高

View的Scale属性不会改变宽高

今天算是遇到一个问题, 一个View的scale改变之后, 我怎么去计算view里面的位置呢, 比如画一个点在他的某个点上, x和y需要相应进行scale换算吗?

看完上面的内容, 很明显, scale不会改变view的宽高, 那么到底该如何进行下一步呢?

答案就是:

其实就跟当他没有scale的时候计算好x和y值就好了, scale属性只是说看起来缩小了, 实际内容还是在原来宽高布局的.

记录一下, 可以看看源码, 如何实现的.


    /**
     * Sets the amount that the view is scaled in x around the pivot point, as a proportion of
     * the view's unscaled width. A value of 1 means that no scaling is applied.
     *
     * @param scaleX The scaling factor.
     * @see #getPivotX()
     * @see #getPivotY()
     *
     * @attr ref android.R.styleable#View_scaleX
     */
    public void setScaleX(float scaleX) {
        if (scaleX != getScaleX()) {
            scaleX = sanitizeFloatPropertyValue(scaleX, "scaleX");
            invalidateViewProperty(true, false);
            mRenderNode.setScaleX(scaleX);
            invalidateViewProperty(false, true);

            invalidateParentIfNeededAndWasQuickRejected();
            notifySubtreeAccessibilityStateChangedIfNeeded();
        }
    }

翻译过来就是:

设置视图在枢轴点周围以x缩放的数量,作为的比例视图的未缩放宽度。值1表示不应用缩放。

看懂非懂, 感兴趣的同学进一步看代码, 我这里就不分析了.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值