正如问题所述,当我浏览Sourcecode of android ImageView时,我看到了具有类级别范围的变量private Matrix mDrawMatrix = null;
,并且该变量的值再次被分配给成员中的最终变量函数(final Matrix matrix = mDrawMatrix;)
。这是函数,
private boolean isFilledByImage() {
if (mDrawable == null) {
return false;
}
final Rect bounds = mDrawable.getBounds();
final Matrix matrix = mDrawMatrix;
if (matrix == null) {
return bounds.left <= 0 && bounds.top <= 0 && bounds.right >= getWidth()
&& bounds.bottom >= getHeight();
} else if (matrix.rectStaysRect()) {
final RectF boundsSrc = mTempSrc;
final RectF boundsDst = mTempDst;
boundsSrc.set(bounds);
matrix.mapRect(boundsDst, boundsSrc);
return boundsDst.left <= 0 && boundsDst.top <= 0 && boundsDst.right >= getWidth()
&& boundsDst.bottom >= getHeight();
} else {
// If the matrix doesn't map to a rectangle, assume the worst.
return false;
}
}
将mMatrix的值再次分配给函数内的最终变量。分配这样的变量有什么好处。
我们99%的人不知道是谁为图像视图编写了代码,但如果是编码实践或者有任何优势或有人有解释:-)请分享。提前感谢好奇的编码员。 : - )