package com.ebensz.eink.demo; import java.io.File; import java.io.FileOutputStream; import android.app.Activity; import android.graphics.Bitmap; import android.graphics.Bitmap.CompressFormat; import android.graphics.Canvas; import android.graphics.Matrix; import android.os.Bundle; import android.view.View; import android.view.View.MeasureSpec; import android.view.View.OnClickListener; import android.widget.Button; public class Exchange extends Activity implements OnClickListener { private Bitmap bitmap1; private Button mExportBtn; private static final String BITMAP_He = "/sdcard/bitmap_add.png"; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.scrollview); mExportBtn = (Button) this.findViewById(R.id.export_he); mExportBtn.setOnClickListener(this); } @Override public void onClick(View v) { // TODO Auto-generated method stub switch (v.getId()) { case R.id.export_he: exportAll(); break; default: break; } } /** * 将布局转换为View类型对象 * @param filename */ private void exportAll( ) { View view = getLayoutInflater().inflate(R.layout.scrollview, null); view.setDrawingCacheEnabled(true); view.measure(MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED), MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED)); view.layout(0, 0, view.getMeasuredWidth(), view.getMeasuredHeight()); try { bitmap1 = view.getDrawingCache(); heCheng(BITMAP_He); } catch (Exception e) { } } /** * bitmap1 考评结果图片 * bitmap2 签字图片 * bitmap3 带签字的考评结果 * @param filename 生成带签字考评结果的文件路径和文件名 */ private void heCheng(String filename) { Bitmap bitmap2 = MainActivity.mbitmap; Bitmap bitmap3 = Bitmap.createBitmap(bitmap1.getWidth(), bitmap1.getHeight(), bitmap1.getConfig()); Canvas canvas = new Canvas(bitmap3); canvas.drawBitmap(bitmap1, new Matrix(), null); canvas.drawBitmap(bitmap2, 20, 1000, null); // 120、350为bitmap2写入点的x、y坐标 try { FileOutputStream out = new FileOutputStream(filename); bitmap3.compress(Bitmap.CompressFormat.PNG, 90, out); out.close(); } catch (Exception e) { } } }