我有一个自定义视图继承自 TextView,在 onDraw() 中编写了一些代码:
@Override
protected void onDraw(Canvas canvas) {
if (mTextShader == null) {
createShader();
}
shaderMatrix.setTranslate(mProgressWidth,0);
mTextShader.setLocalMatrix(shaderMatrix);
Paint paint = new Paint();
paint.setShader(mBgShader);
canvas.drawRect(0,0,mProgressWidth,getBottom(),paint);
getPaint().setShader(mTextShader);
super.onDraw(canvas);
}
看起来是这样的:在此输入图片描述。只需要设置一些着色器,画一个矩形,如果我不使用就可以正常工作。
android:gravity="center"
并且
android:singleLine="true"
在一起使用时(只用其中一个已经很好了),如果仅使用这个属性,这些着色器和矩形将会消失!
为什么会这样?