2017-04-25 84 views
-1

我想創建一個應用程序,像圖像編輯器的圖像上添加文本,並將其保存到畫廊。在這個我的圖像來自畫廊或相機和文字是由用戶添加,但問題是,圖像上的文字沒有存儲在畫廊保存圖像和編輯文本到一個畫廊

任何人都可以在這裏提供任何解決方案?

謝謝! :)

+0

在這裏發佈您的代碼 –

+0

您到目前爲止所做的郵政編碼,一般的想法是在運行時使用LinearLayout添加'textView'來創建'View',創建'View'的'Bitmap'並保存它到'Environment.getExternalStorageDirectory()' – Vikrant

+0

我什麼也沒做對。我只是想知道它是如何完成的。我在這個領域的初學者 感謝您的回覆.... :) :) 但你會解釋一下嗎? @Vikrant –

回答

0

試着這麼做:

1)創建的LinearLayout

LinearLayout layout = (LinearLayout) findViewById(R.id.layout_you_need); 

2)添加的TextView

TextView tv = new TextView(MainActivity.this); 
    //tv.setText("Whatever you like"); 
    layout.addView(tv); // add TextView on runtime 

    layout.setDrawingCacheEnabled(true); 

    layout.buildDrawingCache(true); 

    Bitmap saveBm = Bitmap.createBitmap(layout.getDrawingCache()); 

    layout.setDrawingCacheEnabled(false); 

    SaveImage(savebm); 

3)保存位圖

private void SaveImage(Bitmap finalBitmap) { 

     String root = Environment.getExternalStorageDirectory().toString(); 
     File myDir = new File(root + "/saved_images"); 
     myDir.mkdirs(); 
     Random generator = new Random(); 
     int n = 10000; 
     n = generator.nextInt(n); 
     String fname = "Image-"+ n +".jpg"; 
     File file = new File (myDir, fname); 
     if (file.exists()) file.delete(); 
     try { 
      FileOutputStream out = new FileOutputStream(file); 
      finalBitmap.compress(Bitmap.CompressFormat.JPEG, 90, out); 
      out.flush(); 
      out.close(); 

     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 

而且請理解需要your_layout_view.invalidate(),你將來可能需要這個。

+0

@hamza salam,接受答案,如果它幫助你。 – Vikrant