2 Stimmen

Zeichnen Sie Text auf ImageView

Ich habe versucht, den Text auf diese Weise zu schreiben, aber es funktioniert nicht und ich verstehe nicht, wo mein Fehler liegt.

mImageView.buildDrawingCache();
Bitmap bmap = mImageView.getDrawingCache();
Canvas c = new Canvas (bmap);

Paint paint = new Paint();
paint.setColor(Color.RED); 
paint.setStyle(Style.FILL);                
paint.setTextSize(20);
c.drawText("Einige Text", 0, 25, paint);

Ich habe mehrmals versucht, aber die Anzeige kann keinen Text anzeigen. Ich muss sicherstellen, dass dieses Bild dann mit dem geschriebenen Text gespeichert wird. Danke

18voto

janzoner Punkte 1410

Hier ist das einfache Beispiel, wie man Text auf einem ImageView zeichnet:

MainActivity.java

package com.exmple.imagetest;

import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.Bitmap.Config;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Paint.Style;
import android.os.Bundle;
import android.widget.ImageView;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        ImageView mImageView = (ImageView)findViewById(R.id.imageView1);

        Bitmap bm = BitmapFactory.decodeResource(getResources(), R.drawable.image);

        Config config = bm.getConfig();
        int width = bm.getWidth();
        int height = bm.getHeight();

        Bitmap newImage = Bitmap.createBitmap(width, height, config);

        Canvas c = new Canvas(newImage);
        c.drawBitmap(bm, 0, 0, null);

        Paint paint = new Paint();
        paint.setColor(Color.RED); 
        paint.setStyle(Style.FILL);                
        paint.setTextSize(20);
        c.drawText("Einige Text", 0, 25, paint);

        mImageView.setImageBitmap(newImage);

    }

}

activity_main.xml

0voto

Doan Bui Punkte 3768

Du kannst es versuchen, ich benutze 1 einfachen Trick. Ich habe ein externes FrameLayout erstellt, das ein ImageView und einen TextView enthält. Wie der folgende Code :

Die Ergebnisse werden wie folgt sein: Bildbeschreibung hier eingeben

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X