2013-08-23 4 views
1

Мне нужно нарисовать линию на карте. Из-за требования специальных эффектов линии мне пришлось создать отдельный растровый рисунок и нарисовать линии на этом растровом изображении, используя временный холст. Теперь, когда он завершает рисование линий, я делаю его на основном холсте. К сожалению, приведенный ниже код не работает для меня.Canvas.drawbitmap не работает

@Override 
    protected void draw(final Canvas canvas, final MapView mapView, final boolean shadow) { 
    Bitmap pathBitmap = Bitmap.createBitmap(canvas.getWidth(), canvas.getHeight(), Config.ARGB_4444); 
    Canvas tempCanvas = new Canvas(pathBitmap); 
    tempCanvas.drawPath(mPath, this.mPaint); 
    canvas.drawBitmap(pathBitmap, 0, 0, null); 
    } 

Не мог бы кто-нибудь рассказать мне, что я здесь делаю неправильно?

Обновление: посмотреть, что я делаю неправильно. Я создал новый класс и расширил его с помощью Drawable. В этом классе я переопределяю метод Draw и использовал тот же код только с параметром Canvas, и он работал. Но не знаю, почему он не работает с MapView. Кто-нибудь, пожалуйста, помогите мне?

+0

попытайтесь изменить Config.ARGB_4444 на Config.ARGB_8888 –

+0

Он все еще не работает. – user1294668

ответ

1

Вместо создания размера холста при создании растрового изображения следует использовать getWidget() и.

+0

Вы хотите сказать, что я должен использовать высоту и ширину Mapview для временного холста? – user1294668

+0

Если это нужный вам размер, то да. –

+0

Нет, он все еще не работает. Я не могу понять, что я здесь делаю неправильно. – user1294668

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