implement Undo functionality
This commit is contained in:
parent
31ee707919
commit
92b45d87b0
|
@ -23,4 +23,5 @@ dependencies {
|
|||
compile fileTree(dir: 'libs', include: ['*.jar'])
|
||||
testCompile 'junit:junit:4.12'
|
||||
compile 'com.android.support:appcompat-v7:23.1.1'
|
||||
compile 'com.jakewharton:butterknife:7.0.1'
|
||||
}
|
||||
|
|
|
@ -1,13 +1,24 @@
|
|||
package draw.simplemobiletools.com;
|
||||
|
||||
import android.support.v7.app.AppCompatActivity;
|
||||
import android.os.Bundle;
|
||||
import android.support.v7.app.AppCompatActivity;
|
||||
|
||||
import butterknife.Bind;
|
||||
import butterknife.ButterKnife;
|
||||
import butterknife.OnClick;
|
||||
|
||||
public class MainActivity extends AppCompatActivity {
|
||||
@Bind(R.id.my_canvas) MyCanvas myCanvas;
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.activity_main);
|
||||
ButterKnife.bind(this);
|
||||
}
|
||||
|
||||
@OnClick(R.id.undo)
|
||||
public void undo() {
|
||||
myCanvas.undo();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -36,12 +36,22 @@ public class MyCanvas extends View {
|
|||
paths.add(path);
|
||||
}
|
||||
|
||||
public void undo() {
|
||||
if (paths.size() <= 0)
|
||||
return;
|
||||
|
||||
paths.remove(paths.size() - 1);
|
||||
invalidate();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onDraw(Canvas canvas) {
|
||||
super.onDraw(canvas);
|
||||
|
||||
for (Path p : paths) {
|
||||
canvas.drawPath(p, paint);
|
||||
}
|
||||
canvas.drawPath(path, paint);
|
||||
}
|
||||
|
||||
private void actionDown(float x, float y) {
|
||||
|
@ -60,15 +70,15 @@ public class MyCanvas extends View {
|
|||
private void actionUp() {
|
||||
path.lineTo(curX, curY);
|
||||
|
||||
// drawing dots
|
||||
// drawing dots on click
|
||||
if (startX == curX && startY == curY) {
|
||||
path.lineTo(curX, curY + 2);
|
||||
path.lineTo(curX + 1, curY + 2);
|
||||
path.lineTo(curX + 1, curY);
|
||||
}
|
||||
|
||||
path = new Path();
|
||||
paths.add(path);
|
||||
path = new Path();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -7,7 +7,16 @@
|
|||
tools:context="draw.simplemobiletools.com.MainActivity">
|
||||
|
||||
<draw.simplemobiletools.com.MyCanvas
|
||||
android:id="@+id/my_canvas"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"/>
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/undo"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentRight="true"
|
||||
android:padding="@dimen/activity_margin"
|
||||
android:src="@mipmap/undo"/>
|
||||
|
||||
</RelativeLayout>
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 1.4 KiB |
Loading…
Reference in New Issue