1

テキストと画像の両方を含むファイルを作成および編集する方法を教えてください。

テキストのみのファイルを保存して再度編集することができました。複数行の編集テキストからテキストを取得することでこれを行いました。私はイメージビューを追加し、それに画像を設定しました。しかし、それを保存して編集のために取得する方法がわかりません。

      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として保存されます(間違っている場合は修正してください)。

どうすればこれを行うことができますか..

4

1 に答える 1

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());
        }

}
于 2013-01-09T08:57:07.413 に答える