Skip to content

Commit

Permalink
clip window draw detail and rotate doing.
Browse files Browse the repository at this point in the history
  • Loading branch information
minetsh committed Dec 7, 2017
1 parent 3171cc2 commit 410fb8f
Show file tree
Hide file tree
Showing 20 changed files with 512 additions and 210 deletions.
75 changes: 74 additions & 1 deletion image/src/main/java/com/xingren/imaging/IMGEditActivity.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,20 +4,76 @@
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.text.TextUtils;

import com.xingren.imaging.core.IMGMode;
import com.xingren.imaging.core.IMGText;
import com.xingren.imaging.core.util.IMGUtils;

import java.io.File;

/**
* Created by felix on 2017/11/14 下午2:26.
*/

public class IMGEditActivity extends IMGEditBaseActivity {

public static final String EXTRA_IMAGE_PATH = "EXTRA_IMAGE_PATH";

private static final int MAX_WIDTH = 8000;

private static final int MAX_HEIGHT = 8000;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mImgView.setImageBitmap(BitmapFactory.decodeResource(getResources(), R.drawable.g));
}

@Override
public Bitmap getBitmap() {
// Intent intent = getIntent();
// if (intent == null) {
// return null;
// }
//
// String path = intent.getStringExtra(EXTRA_IMAGE_PATH);
// if (TextUtils.isEmpty(path)) {
// return null;
// }
//
// File file = new File(path);
// if (!file.exists()) {
// return null;
// }
//
// BitmapFactory.Options options = new BitmapFactory.Options();
// options.inSampleSize = 1;
// options.inJustDecodeBounds = true;
//
// Bitmap bitmap = BitmapFactory.decodeFile(file.getAbsolutePath(), options);
//
// if (options.outWidth > MAX_WIDTH) {
// options.inSampleSize = IMGUtils.inSampleSize(Math.round(1f * options.outWidth / MAX_WIDTH));
// }
//
// if (options.outHeight > MAX_HEIGHT) {
// options.inSampleSize = Math.max(options.inSampleSize,
// IMGUtils.inSampleSize(Math.round(1f * options.outHeight / MAX_HEIGHT)));
// }
//
// if (bitmap != null) {
// bitmap.recycle();
// }
// options.inJustDecodeBounds = false;
//
// bitmap = BitmapFactory.decodeFile(file.getAbsolutePath(), options);
// if (bitmap == null) {
// return null;
// }

// return bitmap;

return BitmapFactory.decodeResource(getResources(), R.drawable.g);
}

@Override
Expand Down Expand Up @@ -56,8 +112,15 @@ public void onCancelClick() {

@Override
public void onDoneClick() {
// TODO


Bitmap bitmap = mImgView.saveBitmap();


setResult(RESULT_OK, new Intent().putExtra("IMAGE", bitmap));


finish();
}

Expand All @@ -75,6 +138,16 @@ public void onDoneClipClick() {

@Override
public void onResetClipClick() {
mImgView.resetClip();
}

@Override
public void onRotateClipClick() {
mImgView.doRotate();
}

@Override
public void onColorChanged(int checkedColor) {
mImgView.setPenColor(checkedColor);
}
}
85 changes: 39 additions & 46 deletions image/src/main/java/com/xingren/imaging/IMGEditBaseActivity.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import android.app.Activity;
import android.content.DialogInterface;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.view.View;
import android.widget.RadioGroup;
Expand All @@ -16,8 +17,9 @@
* Created by felix on 2017/12/5 下午3:08.
*/

public class IMGEditBaseActivity extends Activity implements View.OnClickListener,
IMGTextEditDialog.Callback, RadioGroup.OnCheckedChangeListener, DialogInterface.OnShowListener, DialogInterface.OnDismissListener {
public abstract class IMGEditBaseActivity extends Activity implements View.OnClickListener,
IMGTextEditDialog.Callback, RadioGroup.OnCheckedChangeListener,
DialogInterface.OnShowListener, DialogInterface.OnDismissListener {

protected IMGView mImgView;

Expand All @@ -27,7 +29,7 @@ public class IMGEditBaseActivity extends Activity implements View.OnClickListene

private IMGTextEditDialog mTextDialog;

private View mLayoutOpAll, mLayoutOpSub;
private View mLayoutOpSub;

private ViewSwitcher mOpSwitcher, mOpSubSwitcher;

Expand All @@ -44,8 +46,12 @@ public class IMGEditBaseActivity extends Activity implements View.OnClickListene
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.image_edit_activity);
initViews();
Bitmap bitmap = getBitmap();
if (bitmap != null) {
setContentView(R.layout.image_edit_activity);
initViews();
mImgView.setImageBitmap(bitmap);
} else finish();
}

private void initViews() {
Expand All @@ -59,7 +65,6 @@ private void initViews() {
mColorGroup.setOnCheckedChangeListener(this);

mLayoutOpSub = findViewById(R.id.layout_op_sub);
mLayoutOpAll = findViewById(R.id.layout_op_all);
}

@Override
Expand All @@ -85,6 +90,8 @@ public void onClick(View v) {
onDoneClipClick();
} else if (vid == R.id.tv_clip_reset) {
onResetClipClick();
} else if (vid == R.id.ib_clip_rotate) {
onRotateClipClick();
}
}

Expand All @@ -106,10 +113,6 @@ public void updateModeUI() {
}
}

public void onModeClick(IMGMode mode) {

}

public void onTextModeClick() {
if (mTextDialog == null) {
mTextDialog = new IMGTextEditDialog(this, this);
Expand All @@ -119,44 +122,11 @@ public void onTextModeClick() {
mTextDialog.show();
}

public void onUndoClick() {

}

public void onCancelClick() {

}

public void onDoneClick() {

}

public void onCancelClipClick() {

}

public void onDoneClipClick() {

}

public void onResetClipClick() {

}

@Override
public final void onCheckedChanged(RadioGroup group, int checkedId) {
onColorChanged(mColorGroup.getCheckColor());
}

public void onColorChanged(int checkedColor) {
mImgView.setPenColor(checkedColor);
}

@Override
public void onText(IMGText text) {

}

public void setOpDisplay(int op) {
if (op >= 0) {
mOpSwitcher.setDisplayedChild(op);
Expand All @@ -174,11 +144,34 @@ public void setOpSubDisplay(int opSub) {

@Override
public void onShow(DialogInterface dialog) {
mLayoutOpAll.setVisibility(View.GONE);
mOpSwitcher.setVisibility(View.GONE);
}

@Override
public void onDismiss(DialogInterface dialog) {
mLayoutOpAll.setVisibility(View.VISIBLE);
mOpSwitcher.setVisibility(View.VISIBLE);
}

public abstract Bitmap getBitmap();

public abstract void onModeClick(IMGMode mode);

public abstract void onUndoClick();

public abstract void onCancelClick();

public abstract void onDoneClick();

public abstract void onCancelClipClick();

public abstract void onDoneClipClick();

public abstract void onResetClipClick();

public abstract void onRotateClipClick();

public abstract void onColorChanged(int checkedColor);

@Override
public abstract void onText(IMGText text);
}
14 changes: 6 additions & 8 deletions image/src/main/java/com/xingren/imaging/IMGTextEditDialog.java
Original file line number Diff line number Diff line change
Expand Up @@ -57,20 +57,18 @@ protected void onCreate(Bundle savedInstanceState) {
protected void onStart() {
super.onStart();
if (mDefaultText != null) {
setText(mDefaultText);
mEditText.setText(mDefaultText.getText());
mEditText.setTextColor(mDefaultText.getColor());
if (!mDefaultText.isEmpty()) {
mEditText.setSelection(mEditText.length());
}
mDefaultText = null;
} else mEditText.setText("");
mColorGroup.setCheckColor(mEditText.getCurrentTextColor());
}

public void setText(IMGText text) {
if (mEditText != null) {
mEditText.setText(text.getText());
mEditText.setTextColor(text.getColor());
if (!text.isEmpty()) {
mEditText.setSelection(mEditText.length());
}
} else mDefaultText = text;
mDefaultText = text;
}

public void reset() {
Expand Down
Loading

0 comments on commit 410fb8f

Please sign in to comment.