小刚张嘎 2018-01-24 09:18 采纳率: 100%
浏览 1144
已采纳

android:用Bitmap+Canvas画出来的东西,有的能打印有的不能打印

下面这段代码目的是想把图片、文字等打印在一张创建的背景图上。怎么有的能打印出来有的不能?请问要怎么做才能把要打印的都打印上去?
public void DrawImage() {
/*建立画布,画笔,位图初始化*/
bitmap = Bitmap.createBitmap(xp_width, xp_height, Bitmap.Config.ARGB_8888);
canvas = new Canvas(bitmap);
canvas.drawColor(Color.WHITE);
paint = new Paint();
paint.setTextSize(5);

        /*花两边的圆孔 能打印*/
        canvas.drawColor(Color.rgb(223, 233, 235));
        for (int y = 5; y < xp_height - 5; y++) {
            canvas.drawOval(10, y, 24, y + 14, paint);
            canvas.drawOval(495, y, 509, y + 14, paint);
            y = y + 27;
        }

        /*把头部信息打印在背景图上   能打印*/
        bitmap_top = BitmapFactory.decodeResource(getResources(), R.drawable.lishua_top);
        // 指定图片绘制区域
        Rect src_top = new Rect(0, 0, bitmap_top.getWidth(), bitmap_top.getHeight());
        // 指定图片在屏幕上显示的区域,四个点的坐标
        Rect dst_top = new Rect(45, 15, 475, 55);
        canvas.drawBitmap(bitmap_top, src_top, dst_top, paint);
        Log.d("xg", "this is do top");

         /*把印章信息打印在背景图上  不能打印*/
        bitmap_mark = BitmapFactory.decodeResource(getResources(), R.drawable.lakala_top);
        // 指定图片绘制区域
        Rect src_mark = new Rect(0, 0, bitmap_mark.getWidth(), bitmap_mark.getHeight());
        // 指定图片在屏幕上显示的区域,四个点的坐标
        Rect dst_mark = new Rect(280, 595, 485, 570);
        //canvas.rotate();
        canvas.drawBitmap(bitmap_mark, src_mark, dst_mark, paint);

        /* 能打印*/
        canvas.drawLine(100,100,200,200,paint);

        /* 不能打印*/
        canvas.drawPoint(100,100,paint);

        imageView.setImageBitmap(bitmap);
  • 写回答

3条回答 默认 最新

  • 白萝卜。 2018-01-24 10:15
    关注

    CreateBitmap 本身是很消耗资源的,如果加上图片的话,小的还可以吧,大的估计就不行了,正确的做法是 创建一个自定义View,全部画上去,然后把View转化成bitmap,bitmap保存成图片就行了。

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

报告相同问题?

悬赏问题

  • ¥15 有卷积神经网络识别害虫的项目吗
  • ¥15 数据库数据成问号了,前台查询正常,数据库查询是?号
  • ¥15 算法使用了tf-idf,用手肘图确定k值确定不了,第四轮廓系数又太小才有0.006088746097507285,如何解决?(相关搜索:数据处理)
  • ¥15 彩灯控制电路,会的加我QQ1482956179
  • ¥200 相机拍直接转存到电脑上 立拍立穿无线局域网传
  • ¥15 (关键词-电路设计)
  • ¥15 如何解决MIPS计算是否溢出
  • ¥15 vue中我代理了iframe,iframe却走的是路由,没有显示该显示的网站,这个该如何处理
  • ¥15 操作系统相关算法中while();的含义
  • ¥15 CNVcaller安装后无法找到文件