2013-01-02 38 views
1

如何創建和編輯可以包含文本和圖像的文件。如何在單個文件上保存editext和圖像?

我能夠保存一個文件,並再次編輯它只有文本。我通過從多行edittext獲取文本來完成此操作。我添加了一個imageview併爲其設置圖像。但我不知道如何保存並檢索進行編輯。

 public void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.activity_lesson_edit); 

txtData = (EditText) findViewById(R.id.txtData); 
img =(ImageView)findViewById(R.id.imageView1); 

final String path = "/sdcard/ram/notebook/lesson"; 

try { 
     FileInputStream fIn = new FileInputStream(path); 
     BufferedReader myReader = new BufferedReader(new InputStreamReader(fIn)); 
     String aDataRow = ""; 
     String aBuffer = ""; 
     while ((aDataRow = myReader.readLine()) != null) { 
      aBuffer += aDataRow + "\n"; 
     } 
     txtData.setText(aBuffer); 
     myReader.close(); 
    } catch (Exception e) { 
     Toast.makeText(getBaseContext(), e.getMessage(),Toast.LENGTH_SHORT).show(); 
    } 

btnWriteSDFile = (Button) findViewById(R.id.btnWriteSDFile); 
btnWriteSDFile.setOnClickListener(new OnClickListener() { 

public void onClick(View v) { 
    String notes = txtData.getText().toString()+ img.getBackground(); 
    try { 
      FileOutputStream fOut = new FileOutputStream(path); 
      OutputStreamWriter myOutWriter = new OutputStreamWriter(fOut); 
      myOutWriter.append(notes); 
      myOutWriter.close(); 
      fOut.close(); 
      Toast.makeText(getBaseContext(),"Done writing",Toast.LENGTH_SHORT).show(); 
     } catch (Exception e) { 
      Toast.makeText(getBaseContext(), e.getMessage(),Toast.LENGTH_SHORT).show(); 
     } 
     }// onClick 
}); // btnWriteSDFile 
} 

我試過使用畫布。但它保存文本和圖像作爲一個JPG,這是不可編輯的(糾正我,如果我錯了)。

請幫助我,我怎麼能做到這一點..

+0

你應該捕獲手機屏幕...實現它。 – DynamicMind

+0

將圖像保存在文本文件中沒有多大意義。使用2個文件 – njzk2

+0

'img.getBackground();'不是背景圖像的字符串表示。 – njzk2

回答

0

我已經通過下面的代碼來實現這一點。

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    sv = new ScrollView(getApplicationContext()); 
    ll = new LinearLayout(this); 
    ll.setOrientation(LinearLayout.VERTICAL); 
    ll.setBackgroundColor(Color.CYAN); 
    ll.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT)); 
    sv.addView(ll); 
    setContentView(sv); 
Button b1 = new (Button)findViewById(R.id.button1); 
b1..setOnClickListener(new OnClickListener() { 
      public void onClick(View arg0) { 
saveAsJpg(); 
      } 
     }); 

} 
public void saveAsJpg() 
{ 
    //Bitmap b = Bitmap.createBitmap(sv.getWidth(), sv.getHeight(), Bitmap.Config.ARGB_8888); 
    sv.setDrawingCacheEnabled(true); 
    Bitmap b = sv.getDrawingCache(); 
     try { 
      b.compress(CompressFormat.JPEG, 95, new FileOutputStream("/sdcard/ram/ert/d.jpg")); 
      Toast.makeText(this, "Saved!", Toast.LENGTH_LONG).show(); 
     } catch (Exception e) { 
      Log.v("EXCEPTION", e.getMessage()); 
     } 

}