ogiso雪菜 2018-05-04 14:08 采纳率: 37.5%
浏览 2544
已采纳

请帮忙看看为什么canvas.drawBitmap没能显示出图片

显示图片的代码如下

     public DrawBitmapView(Context context,int width,int height,Bitmap bitmap) {
        super(context);
        initPaint();
        mBitWidth = width;
        mBitHeight = height;
        mBitmap = bitmap;
        mSrcRect = new Rect(0,0,mBitWidth,mBitHeight);
        mDestRect = new Rect(0,0,mBitWidth,mBitHeight);
        Log.e("TAG", "宽"+mBitWidth+"高"+mBitHeight+"mSrcRect"+mSrcRect+"mDestRect"+mDestRect);
        Canvas canvas = new Canvas();
        canvas.drawBitmap(mBitmap,mSrcRect,mDestRect,mBitPaint);
        Log.d("TAG","图片已打印");
        setWillNotDraw(false);
        invalidate();
    }

这是log显示的结果

 05-04 22:04:06.443 15938-15938/com.example.xxx.board_meeting E/TAG: 宽291高295mSrcRectRect(0, 0 - 291, 295)mDestRectRect(0, 0 - 291, 295)
05-04 22:06:41.537 15938-15938/com.example.xxx.board_meeting E/TAG: 图片已打印

选择图片后的 各个值的显示图片说明图片说明

最后想问一下,有没有安卓开发的交流群。。我最近在开发过程中遇到了很多问题,希望能有个地方请教一下大家orz

  • 写回答

2条回答 默认 最新

  • Dengliang13 2018-05-10 03:45
    关注

    Canvas canvas = new Canvas();
    canvas是不可以自己new的你,canvas 必须绑定到对应的View。单纯的canvas好比一张贴画,你必须贴到墙上才能看到,在哪个View里面画图就需要使用该View的canvas.每个View都会有一个onDraw(Canvas canvas)方法,你可以在onDraw方法内加入你的以上代码;
    例如 你写的这个DrawBitmapView 类:
    @Override

    protected void onDraw(Canvas canvas) {

    super.onDraw(canvas);

    ……
    canvas.drawBitmap();
    ……
    }

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 全志t113i启动qt应用程序提示internal error
  • ¥15 ensp可以看看嘛.
  • ¥80 51单片机C语言代码解决单片机为AT89C52是清翔单片机
  • ¥60 优博讯DT50高通安卓11系统刷完机自动进去fastboot模式
  • ¥15 minist数字识别
  • ¥15 在安装gym库的pygame时遇到问题,不知道如何解决
  • ¥20 uniapp中的webview 使用的是本地的vue页面,在模拟器上显示无法打开
  • ¥15 网上下载的3DMAX模型,不显示贴图怎么办
  • ¥15 关于#stm32#的问题:寻找一块开发版,作为智能化割草机的控制模块和树莓派主板相连,要求:最低可控制 3 个电机(两个驱动电机,1 个割草电机),其次可以与树莓派主板相连电机照片如下:
  • ¥15 潜在扩散模型的Unet特征提取