ImageView src与background的区别

在使用ImageView的过程中,使用src或者backgroud都可以设置图片,但这两者是有区别的。

1.backgroud继承于父类view,而src是ImageView的自带属性。

2.绘制过程不同。

public void draw(Canvas canvas) {
        ......

        if (!dirtyOpaque) {
            drawBackground(canvas);//绘制背景
        }

        // skip step 2 & 5 if possible (common case)
        final int viewFlags = mViewFlags;
        boolean horizontalEdges = (viewFlags & FADING_EDGE_HORIZONTAL) != 0;
        boolean verticalEdges = (viewFlags & FADING_EDGE_VERTICAL) != 0;
        if (!verticalEdges && !horizontalEdges) {
            // Step 3, draw the content
            if (!dirtyOpaque) onDraw(canvas);//绘制自身

            ......
        }

从view的draw方法可以看到,它会先绘制background,然后调用自身的onDraw()方法。

protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        ......
        
        if (mDrawMatrix == null && mPaddingTop == 0 && mPaddingLeft == 0) {
            mDrawable.draw(canvas);//绘制mDrawable
        } else {
            ......
        }
    }
在ImageView的ondraw()方法中,会绘制src引用的drawable。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值