我创建一个这样的位图
mBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.ic_event_place);
我用Matrix它来设置位图的位置和大小。
mMatrix.setScale(1.5f, 1.5f);
mMatrix.setTranslate(mStartX + (radius - paint.getStrokeWidth() / 2),
mStartY - mBitmap.getHeight() / 1.5f);
canvas.drawBitmap(mBitmap, mMatrix, mBitmapPaint);
我用来绘制位图的画笔
mBitmapPaint = new Paint();
mBitmapPaint.setAntiAlias(true);
mBitmapPaint.setFilterBitmap(true);
mBitmapPaint.setDither(true);
位图已绘制,可以正常工作mMatrix.setTranslate(),但mMatrix.setScale(1.5f, 1.5f)使用任何参数时根本不工作。
setScale(float sx, float sy, float px, float py)而且
postScale()也不工作
当你一个接一个地应用setScale和setTranslate等方法时,之前应用的结果会被后续应用重置。要考虑这两种转换,您需要使用 pre*() 和 post*() 方法。像这样: