首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >保持画布比例和Android中的旋转缩放

保持画布比例和Android中的旋转缩放
EN

Stack Overflow用户
提问于 2015-11-01 09:11:49
回答 1查看 190关注 0票数 1

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

  • 肖像:

  • 景观

它看起来不影响画布对象的旋转。

我又一次尝试过失效和重绘,但这似乎没有什么区别。

代码语言:javascript
运行
复制
    @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();
}

我如何才能保持帆布比例和缩放显示,它将适合新的大小后旋转?

EN

回答 1

Stack Overflow用户

发布于 2017-09-09 21:53:14

我也遇到了同样的问题,但使用以下方法修复了它:

代码语言:javascript
运行
复制
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)
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33460679

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档