簡體   English   中英

如何在圖像視圖android上繪制文本

[英]how to draw text on image view android

我有一個應用程序,可以計算手機使用時間,你可以在社交網絡上分享,而不是普通的gettext()我想把結果放在圖像上並保存到手機上。 如何創建可以保存到包含自定義文本的手機的圖像?

你想要做的是繪制一個鏈接到Bitmap的Canvas,並保存位圖。 這里有一些代碼,你應該能夠串起來使它工作。 請注意,您還必須在getBitmap()函數中將畫布添加到畫布。

private Bitmap getBitmap() {
    Bitmap bitmap = Bitmap.createBitmap(mPieToss.getWidth(),
            mPieToss.getHeight(), Bitmap.Config.ARGB_8888);
    Canvas canvas = new Canvas(bitmap);
    // Draw things to your canvas. They will be included as your BitMap, which is saved later on


    return bitmap;
}

public void save() {
    Bitmap bitmap = getBitmap();

    File path = Environment
            .getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);
    String timestamp = new SimpleDateFormat("yyyyMMdd_HHmmss")
            .format(new Date());

    String filename = "Imagen_" + timestamp + ".jpg";
    File file = new File(path, filename);
    FileOutputStream stream;
    // This can fail if the external storage is mounted via USB
    try {
        stream = new FileOutputStream(file);
        bitmap.compress(CompressFormat.PNG, 100, stream);
        stream.close();
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }

    mUri = Uri.fromFile(file);

    bitmap.recycle();
}

首先將布局轉換為位圖:

View contentLayout; // your layout with bavkground image and TextView
Bitmap bitmap = Bitmap.createBitmap(screenWidth, screenHeight, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);

content.draw(canvas);

現在您可以將其保存到文件中:

FileOutputStream fos = new FileOutputStream(fileName, false);

bitmap.compress(Bitmap.CompressFormat.PNG, 75, fos);

fos.flush();
fos.close();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM