java - 在图像上写入文本时出错

标签 java android canvas

我尝试在图像上写文字:

private Bitmap drawText() {
    Bitmap bitmap = BitmapFactory.decodeResource(getResources(),
             R.drawable.test); 

    Canvas canvas = new Canvas(bitmap);
    Paint paint = new Paint();
    paint.setColor(Color.BLACK);
    paint.setTextSize(5);
    canvas.drawText("Some Text here", 5, 5, paint);

    Bitmap resBitmap = Bitmap.createBitmap(canvas.getWidth(),
            canvas.getHeight(), Config.RGB_565);
    canvas.setBitmap(resBitmap);
    return resBitmap;

}

结果是一个全黑的图像。我做错了什么?

最佳答案

免责声明:我不是 Android 开发人员。我从来没有写过这样的代码。这只是我对文档的解释...

我怀疑您实际上想要将位图设置为更早地绘制,然后将另一个位图绘制到 Canvas 中。所以类似:

private Bitmap drawText() {
    // Load the existing image to get some dimensions
    Bitmap bitmap = BitmapFactory.decodeResource(getResources(),
        R.drawable.test); 

    // Create a result bitmap and a canvas which draws onto it
    Bitmap resBitmap = Bitmap.createBitmap(bitmap.getWidth(),
        bitmap.getHeight(), Config.RGB_565);
    Canvas canvas = new Canvas(resBitmap);

    // Draw the existing image into the canvas
    canvas.drawBitmap(bitmap, 0f, 0f, null);

    // Draw text on top
    Paint paint = new Paint();
    paint.setColor(Color.BLACK);
    paint.setTextSize(5);
    canvas.drawText("Some Text here", 5, 5, paint);

    return resBitmap;
}

关于java - 在图像上写入文本时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22531929/

相关文章:

javascript - 为什么 clearRect() 没有完全清除 fillRect()

javascript - 背景进度条 Canvas

Javascript 集合框架

java - 无法使用带有 x-www-form-urlencoded 参数的 JSOUP 登录网站

java - 415 不支持的媒体类型 JAX-WS

java - 如何使用 if 语句或 for 循环设置枚举?

android - 传递一个 Bundle 给 startActivityForResult 来实现 Scene Transitions

java - 没有这样的列: ٤۹۸ (code 1):

android - 应用无法根据设备配置声明不同版本的 Google Play 服务

javascript - 如何重画 Canvas 圆而不残留?