将画布转换为位图Android - 黑色背景

时间:2015-07-13 15:28:24

标签: android android-layout canvas bitmap

我问了this关于在画布上绘制文字的问题,我被告知我可以在布局中添加文本视图,并将布局绘制到画布,如this

我的问题是,当我尝试转换为bmp并显示时,我得到一个黑色矩形。

这是我的代码:

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title>Wubwub</title>
</head>
<body>
Jojo
</body>
</html>

我知道我错了,但我不知道在哪里,我想我正在按照正确的步骤......

有人能指出我哪里出错了。感谢

4 个答案:

答案 0 :(得分:1)

我无法理解画布上绘制文本的问题,但请尝试:

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ImageView imageView = (ImageView) findViewById(R.id.image_for_test_displaying);
        imageView.setImageBitmap(getBitmapFromArabicText("صيققق٣يفاوووووومالؤؤتمكا"));
    }

    private Bitmap getBitmapFromArabicText(String string) {
        Paint paint = new Paint();
        //size can be customized
        Bitmap bitmap = Bitmap.createBitmap(400, 400, Bitmap.Config.ARGB_8888);
        Canvas canvas = new Canvas(bitmap);
        //Draw black background
        paint.setColor(Color.BLACK);
        canvas.drawRect(0, 0, bitmap.getWidth(), bitmap.getHeight(), paint);
        //draw white text
        paint.setColor(Color.WHITE);
        //text position you can manage from yourself
        canvas.drawText(string, 10, 10, paint);
        return bitmap;
    }
}

答案 1 :(得分:0)

您没有从布局创建 <AddToDoTextBox handleUpdate={this.updateValue.bind(this)}/> <AddToDoButton handleClick={this.clickHandler.bind(this)}/> 。使用以下代码创建它:

Bitmap

答案 2 :(得分:0)

这个问题可能已经得到解答,但这是我的简单解决方案,用于确保背景和视图本身显示正常。 “内容”是一个表格布局。

Bitmap foreground = Bitmap.createBitmap(content.getWidth(), content.getHeight(), 
            Config.ARGB_8888);
    Canvas canvas = new Canvas(foreground);
    canvas.drawColor(Color.WHITE);
    content.draw(canvas);

答案 3 :(得分:0)

我有同样的问题。 在根布局上设置背景属性可以解决我的问题。

参考:https://www.cnblogs.com/graphics/p/5933773.html