首页 > 解决方案 > 在Android Java中创建位图后为空

问题描述

我得到一个错误

java.lang.NullPointerException: Attempt to invoke virtual method 'int android.graphics.Bitmap.getWidth()' on a null object reference
        at com.kotlin.ambulantlcs.helpers.PrinterHelper.getTrasparentBitmapCopy(PrinterHelper.java:145)
        at com.kotlin.ambulantlcs.helpers.PrinterHelper.convertStringToImage(PrinterHelper.java:133)

当我在 Android Java 中运行此代码时

public static void convertStringToImage(Activity activity)
    {
        Bitmap bitmap = Bitmap.createBitmap(300, 400, Bitmap.Config.ARGB_8888);
        Canvas canvas = new Canvas(bitmap);
        canvas.drawColor(Color.BLACK);
        Paint paint = new Paint();
        paint.setTextAlign(Paint.Align.LEFT);
        paint.setAntiAlias(true);
        paint.setTextSize(12);

        canvas.drawText("Lorem Ipsum Dolor Sed Actum Malo", 10, 10, paint);
        canvas.save();
        canvas.restore();

        int iRet = ftplib.printPicture(bitmap, FTPAndroidLib.DITHER_NONDITHERING, bitmap.getHeight(), bitmap.getWidth()); ===> ERROR IS HERE
       
    }

我正在尝试创建以编程方式创建的文本图像,因为稍后我会将其连接到另一个图像。但在我这样做之前,我先把它打印出来。

编辑

Bitmap bitmap = Bitmap.createBitmap(200, 100, Bitmap.Config.ARGB_8888);
        Canvas canvas = new Canvas(bitmap);
        canvas.drawColor(Color.WHITE);
        Paint paint = new Paint();
        paint.setTextAlign(Paint.Align.LEFT);
        paint.setAntiAlias(true);
        paint.setTextSize(9);
        canvas.drawPaint(paint);

        paint.setColor(Color.BLACK);
        paint.setTextSize(9);

        canvas.drawText("Lorem Ipsum Dolor Sed Actum Malo", 0, 50, paint);
        canvas.save();
        canvas.restore();

int iRet = ftplib.printPicture(bitmap, FTPAndroidLib.DITHER_NONDITHERING, bitmap.getWidth(), bitmap.getHeight());

编辑 2

 Bitmap bitmap = Bitmap.createBitmap(350, 200, Bitmap.Config.ARGB_8888);
        Canvas canvas = new Canvas(bitmap);
        canvas.drawColor(Color.WHITE);
        Paint paint = new Paint();
        paint.setColor(Color.BLACK);
        paint.setTextAlign(Paint.Align.LEFT);
        paint.setAntiAlias(true);
        paint.setTextSize(20);

        Log.i("TAG", message);
        canvas.drawText("Lorem Ipsum Dolor Sed Actum Malo", 0, 50, paint);
        canvas.save();


         int iRet = ftplib.printPicture(bitmap, FTPAndroidLib.DITHER_NONDITHERING, bitmap.getWidth(), bitmap.getHeight());

标签: android

解决方案


我希望它会帮助你,试试吧。

    Bitmap bitmap = Bitmap.createBitmap(300, 400, Bitmap.Config.ARGB_8888);
    Canvas canvas = new Canvas(bitmap);
    canvas.drawColor(Color.WHITE);  // White background color of canvas.
    Paint paint = new Paint();
    paint.setTextAlign(Paint.Align.LEFT);  // Text align left
    paint.setAntiAlias(true);
    paint.setTextSize(12);
    canvas.drawPaint(paint); 
    
    paint.setColor(Color.BLACK); // Black text color
    paint.setTextSize(20); 
    canvas.drawText("Put Your Text Here", 10, 10, paint);

    int iRet = ftplib.printPicture(bitmap, FTPAndroidLib.DITHER_NONDITHERING, bitmap.getHeight(), bitmap.getWidth());

    canvas.restore();

推荐阅读