我创建了扩展视图类的CanvasView对象,并在应用程序的清单中重写了configChanged,正如您所看到的,画布不会再次正确地重新绘制。


它看起来不影响画布对象的旋转。
我又一次尝试过失效和重绘,但这似乎没有什么区别。
@Override
protected void onSizeChanged(int w, int h, int oldw, int oldh) {
super.onSizeChanged(w, h, oldw, oldh);
if(canvasBitmap == null){
canvasBitmap = Bitmap.createBitmap(w, h, Bitmap.Config.ARGB_8888);
}else{
Bitmap temporary = Bitmap.createScaledBitmap(canvasBitmap, w, h, true);
canvasBitmap = temporary;
}
mCanvas = new Canvas(canvasBitmap);
draw(mCanvas);
invalidate();
}我如何才能保持帆布比例和缩放显示,它将适合新的大小后旋转?
发布于 2017-09-09 21:53:14
我也遇到了同样的问题,但使用以下方法修复了它:
override fun onSizeChanged(w: Int, h: Int, oldw: Int, oldh: Int) {
super.onSizeChanged(w, h, oldw, oldh)
if(bitMap == null) {
bitMap = Bitmap.createBitmap(w, h, Bitmap.Config.ARGB_8888)
canvas = Canvas(bitMap)
} else {
bitMap = Bitmap.createScaledBitmap(bitMap, w, h, true)
canvas = Canvas(bitMap)
canvas.drawBitmap(bitMap, 0f, 0f, bitMapPaint)
}
}https://stackoverflow.com/questions/33460679
复制相似问题