小刚张嘎 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 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?
  • ¥100 求三轴之间相互配合画圆以及直线的算法
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 自己瞎改改,结果现在又运行不了了