2015-09-25 3 views
0

Я не следующий код, который работает:Android - Невозможно нарисовать растровое изображение в холсте

protected void onDraw(Canvas canvas) {  
    canvas.drawRect(undoButtonRectF, buttonPaint); 
    canvas.drawPath(undoButtonArrow, buttonArrowPaint); 

Во всяком случае, когда я обменивать это следующее:

protected void onDraw(Canvas canvas) {   
     undoButtonBitmap = Bitmap.createBitmap((int) undoButtonRectF.width(), (int) undoButtonRectF.height(), Bitmap.Config.ARGB_8888); 

     Canvas ca = new Canvas(undoButtonBitmap); 

     ca.drawRect(undoButtonRectF, buttonPaint); 
     ca.drawPath(undoButtonArrow, buttonArrowPaint); 

     canvas.drawBitmap(undoButtonBitmap, undoButtonRectF.left, undoButtonRectF.top, buttonPaint); 

ничего нарисован. Как это может произойти? Я использую растровое изображение неправильно? Пожалуйста, помогите мне!!!

+0

Потому что вы сделали это с переменной 'canvas' вместо вашей переменной' ca' – Aggressor

+0

, которая находится внутри вызова canvas (Canvas canvas). Мне нужно нарисовать undoButtonBitmap внутри холста, и я использую ca только для написания материала в растровом изображении. Тогда что случилось? –

ответ

1

Я предполагаю, что ошибка координатора.

Ошибки в том, что undoButtonRectF содержит смещение для «холста», а не «ок», вы должны изменить или удалить верх/слева смещение перед вызовом

ca.drawRect(undoButtonRectF, buttonPaint); 
ca.drawPath(undoButtonArrow, buttonArrowPaint); 

правильно?

+0

ты отличный мужчина! большое большое спасибо –

Смежные вопросы