I'm trying to change the width of my brush by using the setStrokeWidth command. But when I use this command it's changing all the drawings I have done before I used it to the width I choose in another screen. Can any one help me?
the screen of the main page:
package com.example.drawapp;
import static com.example.drawapp.display.colorList;
import static com.example.drawapp.display.current_brush;
import static com.example.drawapp.display.pathList;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Path;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import java.util.ArrayList;
public class Draw_Page extends AppCompatActivity {
public static Path path = new Path();
public static Paint paint_brush = new Paint();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_draw_page2);
}
public void ClearButton(View view) {
pathList.clear();
colorList.clear();
path.reset();
}
public void currentColor(int c){
current_brush =c;
path = new Path();
}
public void SetPaintBrush(int size){
paint_brush.setStrokeWidth(size);
}
public void SettingsButton(View view) {
Log.d("btnSettings", "1");//SettingsButton Clickd
Intent myintent = new Intent(this,Settings.class);
startActivity(myintent);
}
public void ShareButton(View view) {
Intent sharingIntent = new Intent(android.content.Intent.ACTION_SEND);
sharingIntent.setType("text/plain");
String shareBody = "Here is the share content body";
sharingIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "Subject Here");
sharingIntent.putExtra(android.content.Intent.EXTRA_TEXT, shareBody);
startActivity(Intent.createChooser(sharingIntent, "Share via"));
}
}
the screen with the canvas:
package com.example.drawapp;
import static com.example.drawapp.Draw_Page.paint_brush;
import static com.example.drawapp.Draw_Page.path;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Path;
import android.util.AttributeSet;
import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import java.util.ArrayList;
public class display extends View {
public static ArrayList<Path> pathList = new ArrayList<>();
public static ArrayList<Integer> colorList = new ArrayList<>();
public ViewGroup.LayoutParams params;
public static int current_brush = Color.BLACK;
public display(Context context) {
super(context);
init(context);
}
public display(Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
init(context);
}
public display(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
init(context);
}
private void init(Context context){
Log.d("resetSize","resetsize");
paint_brush.setAntiAlias(true);
paint_brush.setColor(Color.BLACK);
paint_brush.setStyle(Paint.Style.STROKE);
paint_brush.setStrokeCap(Paint.Cap.ROUND);
paint_brush.setStrokeJoin(Paint.Join.ROUND);
//paint_brush.setStrokeWidth(30f);
params = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
float x = event.getX();
float y = event.getY();
switch (event.getAction()){
case MotionEvent.ACTION_DOWN:
path.moveTo(x,y);
invalidate();
return true;
case MotionEvent.ACTION_MOVE:
path.lineTo(x,y);
pathList.add(path);
colorList.add(current_brush);
invalidate();
return true;
default:
return false;
}
}
@Override
protected void onDraw(Canvas canvas) {
for (int i=0; i<pathList.size();i++){
paint_brush.setColor(colorList.get(i));
canvas.drawPath(pathList.get(i),paint_brush);
invalidate();
}
}
}
and the screen where I am choosing the width:
package com.example.drawapp;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.graphics.Color;
import android.os.Bundle;
import android.text.style.BackgroundColorSpan;
import android.util.Log;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.Spinner;
import android.widget.TextView;
public class Settings extends AppCompatActivity {
public Draw_Page dp;
public Spinner spinnerSizes;
public Color bg;
public int text;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_settings);
spinnerSizes = findViewById(R.id.spinnerSizeBrush);
String[] brushSizes = getResources().getStringArray(R.array.brush_Size);
ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_spinner_item, brushSizes);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_item);
spinnerSizes.setAdapter(adapter);
}
public void btnSave(View view) {
Log.d("number","Save button");
Intent intent = new Intent(this,Draw_Page.class);
dp = new Draw_Page();
dp.SetPaintBrush(Integer.parseInt(spinnerSizes.getSelectedItem().toString()));
startActivity(intent);
}
public void btnCancel(View view) {
Log.d("number","Cancel button");
Intent intent = new Intent(this,Draw_Page.class);
startActivity(intent);
}
}