提交 7d4552dc 编写于 作者: forward123_'s avatar forward123_

增加启动涂鸦界面的接口

上级 8e993fc8
......@@ -2,6 +2,7 @@ package cn.hzw.graffiti;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.graphics.Bitmap;
......@@ -30,6 +31,19 @@ import cn.forward.androids.utils.ThreadUtil;
*/
public class GraffitiActivity extends Activity {
/**
* 启动涂鸦界面
* @param activity
* @param imagePath 图片路径
* @param requestCode startActivityForResult的请求码
*/
public static void startActivityForResult(Activity activity, String imagePath, int requestCode) {
Intent intent = new Intent(activity, GraffitiActivity.class);
intent.putExtra(GraffitiActivity.KEY_IMAGE_PATH, imagePath);
activity.startActivityForResult(intent, requestCode);
}
public static final String KEY_IMAGE_PATH = "key_image_path";
private String mImagePath;
private Bitmap mBitmap;
......@@ -248,6 +262,7 @@ public class GraffitiActivity extends Activity {
/**
* 计算两指间的距离
*
* @param event
* @return
*/
......@@ -388,10 +403,10 @@ public class GraffitiActivity extends Activity {
@Override
public void onBackPressed() {
if(mBtnMovePic.isSelected()){
if (mBtnMovePic.isSelected()) {
mBtnMovePic.setSelected(false);
return;
}else{
} else {
findViewById(R.id.btn_back).performClick();
}
......
......@@ -434,7 +434,6 @@ public class GraffitiView extends View {
public final float toTransY(float touchY, float graffitiY) {
return -graffitiY * (mPrivateScale * mScale) + touchY - mCentreTranY;
}
/**
* 将屏幕触摸坐标x转换成在canvas中的坐标
*/
......@@ -449,14 +448,15 @@ public class GraffitiView extends View {
return (y) / (mPrivateScale * mScale);
}
private static class GraffitiPath {
Pen mPen; // 画笔类型
Shape mShape; // 画笔形状
float mStrokeWidth; // 大小
GraffitiColor mColor; // 颜色
Path mPath; // 画笔的路径
float mSx, mSy; // 起始坐标(手指点击)
float mDx, mDy; // 终止坐标(手指触摸
float mSx, mSy; // 映射后的起始坐标,(手指点击)
float mDx, mDy; // 映射后的终止坐标,(手指抬起
Matrix mMatrix; // 仿制图片的偏移矩阵
static GraffitiPath toShape(Pen pen, Shape shape, float width, GraffitiColor color,
......
......@@ -15,6 +15,32 @@
在涂鸦的过程中,可以自由地通过手势缩放和移动图片,以便更细微地涂鸦,同时在多次缩放后,可点击“O”按钮,快速居中图片。
### 使用
```
public class GraffitiActivity extends Activity {
/**
* 启动涂鸦界面
* @param activity
* @param imagePath 图片路径
* @param requestCode startActivityForResult的请求码
*/
public static void startActivityForResult(Activity activity, String imagePath, int requestCode);
}
```
### 界面
![IMG](http://s1.sinaimg.cn/orignal/003eBWOtzy757JQaYiA00&690)
![IMG](http://s16.sinaimg.cn/orignal/003eBWOtzy757JPIatxbf&690)
![IMG](http://s1.sinaimg.cn/orignal/003eBWOtzy757JQ7CG470&690)
### 相关文章
* 功能介绍:
[android图片涂鸦,具有设置画笔,撤销,缩放移动等功能(一)](http://blog.csdn.net/u012964944/article/details/52661940)
* 原理介绍:
[android图片涂鸦,具有设置画笔,撤销,缩放移动等功能(二)](http://blog.csdn.net/u012964944/article/details/52769273)
\ No newline at end of file
......@@ -42,9 +42,10 @@ public class MainActivity extends Activity {
}
ArrayList<String> list = data.getStringArrayListExtra(ImageSelectorActivity.KEY_PATH_LIST);
if (list != null && list.size() > 0) {
Intent intent = new Intent(getApplicationContext(), GraffitiActivity.class);
/*Intent intent = new Intent(getApplicationContext(), GraffitiActivity.class);
intent.putExtra(GraffitiActivity.KEY_IMAGE_PATH, list.get(0));
startActivityForResult(intent, REQ_CODE_GRAFFITI);
startActivityForResult(intent, REQ_CODE_GRAFFITI);*/
GraffitiActivity.startActivityForResult(MainActivity.this, list.get(0), REQ_CODE_GRAFFITI);
}
} else if (requestCode == REQ_CODE_GRAFFITI) {
if (data == null) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册