package cn.flightfeather.thirdappmodule.activity; import android.app.Activity; import android.content.Intent; import android.graphics.Bitmap; import android.graphics.Bitmap.CompressFormat; import android.graphics.Color; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.view.KeyEvent; import android.view.View; import android.view.View.OnClickListener; import android.view.Window; import android.widget.FrameLayout; import android.widget.ImageView; import android.widget.Toast; import java.io.ByteArrayOutputStream; import cn.flightfeather.thirdappmodule.R; import cn.flightfeather.thirdappmodule.module.MainActivity; import cn.flightfeather.thirdappmodule.listener.OnScrollListener; import cn.flightfeather.thirdappmodule.util.Constant; import cn.flightfeather.thirdappmodule.view.TuyaView; /** * * * @author 林力 */ public class SignActivity extends Activity implements OnClickListener, OnScrollListener { public static final int OPERATION_UNDO = 1; private final int defaultColor = Color.parseColor("#FFFFFF"); private ImageView imageview_background; private TuyaView tuyaView; FrameLayout tuyaFrameLayout = null; private static final String TAG = SignActivity.class.getSimpleName(); private int CANCLE_BACKGROUND_IMAGE = 0; private Handler handler = new Handler() { @Override public void handleMessage(Message msg) { switch (msg.what) { case OPERATION_UNDO: int undo = tuyaView.undo(); //撤销上次操作 System.out.println("可以撤销:" + undo); if (undo < 0) { CANCLE_BACKGROUND_IMAGE++; switch (CANCLE_BACKGROUND_IMAGE) { case 0: break; case 1: System.out.println("设置imageview为默认"); imageview_background.setBackgroundColor(defaultColor); imageview_background.setImageBitmap(null); CANCLE_BACKGROUND_IMAGE = 0; break; } } // tuyaFrameLayout.destroyDrawingCache(); // tuyaFrameLayout.buildDrawingCache(); break; } } }; private Intent intent; private Bitmap bitmap; @Override public void onCreate(Bundle savedInstanceState) { requestWindowFeature(Window.FEATURE_NO_TITLE); super.onCreate(savedInstanceState); intent = getIntent(); setContentView(R.layout.tuya_layout); tuyaFrameLayout = (FrameLayout) findViewById(R.id.tuya_layout); boolean drawingCacheEnabled = tuyaFrameLayout.isDrawingCacheEnabled(); if (!drawingCacheEnabled) { tuyaFrameLayout.setDrawingCacheEnabled(true); } imageview_background = (ImageView) findViewById(R.id.imageview_background); tuyaView = (TuyaView) findViewById(R.id.tuyaView); findViewById(R.id.btn_undo).setOnClickListener(this); findViewById(R.id.btn_save).setOnClickListener(this); } @Override public void onBackPressed() { } @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) {// 返回键 this.finish(); int undo = tuyaView.undo(); //撤销上次操作 if(undo<1){ System.out.println("设置imageview为默认"); imageview_background.setBackgroundColor(0xff99CCCC); imageview_background.setImageBitmap(null); } return true; } return super.onKeyDown(keyCode, event); } @Override public void onClick(View v) { int id = v.getId(); if (id == R.id.btn_undo) { Message msg = handler.obtainMessage(); msg.what = OPERATION_UNDO; handler.sendMessage(msg); } else if (id == R.id.btn_save) { sendTuyaBitmap(); } } /** * 发送图片 */ private void sendTuyaBitmap() { //获得当前的Bitmap对象 tuyaFrameLayout.buildDrawingCache(); bitmap = tuyaFrameLayout.getDrawingCache(); if (bitmap != null) { ByteArrayOutputStream baos = new ByteArrayOutputStream(); try { bitmap.compress(CompressFormat.JPEG, 100, baos); byte[] bitmapByteArr = baos.toByteArray(); //跳转到对应界面 Intent intent = new Intent(this,MainActivity.class); intent.putExtra(Constant.KEY_INTENT_SIGHPIC, bitmapByteArr); setResult(RESULT_OK, intent); baos.close(); this.finish(); } catch (Exception e) { e.printStackTrace(); } } else { Toast.makeText(this, "未能发送图片,请重试!", Toast.LENGTH_SHORT).show(); } tuyaFrameLayout.destroyDrawingCache(); } @Override public void onLeft() { } @Override public void onRight() { } @Override public void onScroll() { } @Override protected void onDestroy() { super.onDestroy(); // TuyaView.color = Color.parseColor("#fe0000"); // TuyaView.srokeWidth = 15; } }