zeichnen von text auf der Oberseite von bitmap fehlgeschlagen
Ich will, um einen Punkt anzuzeigen, und einen text auf einem Bild. Ich habe versucht, mehrere tutorial auf überlagerungen bitmap, aber es scheint nicht zu funktionieren. Hier ist der code, der zeigt das Bild im hintergrund.
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);
Dann auf den OnClickListener, definiere ich ein anderes bitmap und zeichne den Punkt und der text.
Bitmap bmOverlay = Bitmap.createBitmap(mBitmap.getWidth(), mBitmap.getHeight(),
Bitmap.Config.ARGB_4444);
Canvas canvas = new Canvas(bmOverlay);
Paint paint = new Paint();
paint.setColor(Color.CYAN);
paint.setTextSize(20);
paint.setFlags(Paint.ANTI_ALIAS_FLAG);
canvas.drawText("You are here", 100, 100, paint);
canvas.drawPoint(30.0f, 50.0f, paint);
canvas.drawBitmap(bmOverlay, 0, 0, null);
Nichts wird angezeigt, auf dem hintergrund Bild, auch wenn ich Entferne das Bild. Jeden Tipp bitte?
Update: Den funktionierenden code
//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);
- Das ist normal, das Sie zeichnen, text und Punkt VOR dem zeichnen der bitmap. Natürlich die bitmap wird überlappt alles!
- überprüfen Sie heraus meine Antwort http://stackoverflow.com/questions/7320392/how-to-draw-text-on-image/10313272#10313272
InformationsquelleAutor springrolls | 2011-02-15
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Was tun Sie mit der Leinwand? Wo wird es eingesetzt? (poste etwas mehr code,...)
Außer, dass die Zeichnung, die Reihenfolge ist falsch, Sie werden überzeichnen, Ihr text und Punkt, der mit der bitmap.
Edit:
Ich bin ein bisschen verloren, da ich nicht weiß, welche Ihrer Bilder sollte der hintergrund und was Bild, das Sie bereits sehen... so bin ich raten, dass mBitmap (die roomplan) ist dein hintergrund? Als hinzufügen, dass Ihr layout ein hintergrund-Bild und verwenden nur die Bildansicht zu ziehen, overlay -...
wenn Ihr Overlay benötigen ein Hintergrundbild zu, versuchen Sie, die:
Wenn Ihr Bildansicht sollte die roomplan als hintergrund, versuchen Sie, die:
onCreate()
- Methode und die zweite ist ìn derOnClickListener
. Ok, da bekam ich die gleiche Antwort, die über das zeichnen, um, ich werde versuchen, spielen ein bisschen herum und wieder zurück zu Euch 😉