не удалось нарисовать текст поверх растрового изображения - PullRequest
7 голосов
/ 15 февраля 2011

Я хочу отобразить точку и текст поверх изображения.Я пробовал несколько уроков по наложению растровых изображений, но, похоже, это не работает.Вот код, который отображает фоновое изображение.

mBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.roomplan);
mIV = (ImageView)findViewById(R.id.ImageView01);
mIV.setImageBitmap(mBitmap); 
mIV.invalidate();

btnDraw = (Button)findViewById(R.id.Button01);
btnDraw.setOnClickListener(this);

Затем в OnClickListener я определяю другое растровое изображение и рисую точку и текст.фонового изображения, даже когда я удаляю изображение.Любая подсказка, пожалуйста?

Обновление: Рабочий код

// get a reference to the background image
mBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.raumplan_isst);

mIV = (ImageView)findViewById(R.id.ImageView01);

// create a mutable bitmap with the same size as the background image
Bitmap bmOverlay = Bitmap.createBitmap(mBitmap.getWidth(), mBitmap.getHeight(), 
    Bitmap.Config.ARGB_4444);
// create a canvas on which to draw
canvas = new Canvas(bmOverlay);

Paint paint = new Paint();
paint.setColor(Color.CYAN);
paint.setTextSize(20);
paint.setFlags(Paint.ANTI_ALIAS_FLAG);

// if the background image is defined in main.xml, omit this line
canvas.drawBitmap(mBitmap, 0, 0, null);
// draw the text and the point
canvas.drawPoint(fKoordX, fKoordY, paint);
canvas.drawText("You are here", fKoordX+3, fKoordY+3, paint);

// set the bitmap into the ImageView
mIV.setImageBitmap(bmOverlay);

1 Ответ

5 голосов
/ 15 февраля 2011

Что вы делаете с холстом?Где это используется?.немного потерян, потому что я не знаю, какое из ваших изображений должно быть фоном, и какое изображение вы уже видите ... так что я предполагаю, что mBitmap (план комнаты) является вашим фоном?Затем добавьте это к своему макету в качестве фонового изображения и просто используйте ImageView, чтобы нарисовать наложение ...

, если для вашего наложения также требуется фоновое изображение, попробуйте следующее:Ваш ImageView должен иметь план комнаты в качестве фона, попробуйте:

// overlay background
canvas.drawBitmap(mBitmap, 0, 0, paint);
// draw the text and the point
canvas.drawText("You are here", 100, 100, paint);
canvas.drawPoint(30.0f, 50.0f, paint);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...