Android将视图保存为jpg或png

我想写一个Android应用程序,基本上在另一个图像上的图像覆盖图层,然后我想保存与覆盖作为JPG或PNG的图片。 基本上这是我想保存的整个观点。

示例代码将非常有帮助。

编辑:

我尝试了你的build议,并在Starred Line上得到一个空指针。

import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import android.app.Activity; import android.graphics.Bitmap; import android.graphics.Bitmap.CompressFormat; import android.os.Bundle; import android.os.Environment; import android.widget.LinearLayout; import android.widget.TextView; public class EditPhoto extends Activity { /** Called when the activity is first created. */ LinearLayout ll = null; TextView tv = null; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); tv = (TextView) findViewById(R.id.text); ll = (LinearLayout) findViewById(R.id.layout); ll.setDrawingCacheEnabled(true); Bitmap b = ll.getDrawingCache(); File sdCard = Environment.getExternalStorageDirectory(); File file = new File(sdCard, "image.jpg"); FileOutputStream fos; try { fos = new FileOutputStream(file); *** b.compress(CompressFormat.JPEG, 95,fos); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } 

您可以利用视图的绘图caching。

 view.setDrawingCacheEnabled(true); Bitmap b = view.getDrawingCache(); b.compress(CompressFormat.JPEG, 95, new FileOutputStream("/some/location/image.jpg")); 

哪里是你的观点。 95是JPG压缩的质量。 而文件输出stream就是这样。

 File sdCard = Environment.getExternalStorageDirectory(); File file = new File(sdCard, "image.jpg"); FileOutputStream fos = new FileOutputStream(file); 

在Moncader的答案中使用fos引用作为b.compress()方法的第三个参数。 该图像将被保存为SD卡的根目录下的image.jpg。