Merge pull request #231 from nitta-lab-2021/pen_detail_fragment_mifune
Penの色や太さを変えるためのPenDetailFragmentを実装しました。 まだ修正が必要
commit 9d8b1c7e7d6dcae63a6ddcdcec6cec6d184d9272
2 parents dead91f + 0cbeb2f
倉岡 諒丞 authored on 26 Oct 2021
Showing 8 changed files
View
77
app/src/main/java/org/ntlab/acanthus_client/entities/Pen.java
 
//-----------------------------------------------------------------
//
public class Pen {
private Integer penType;
//private Integer penType;
private Integer color;
private Integer red;
private Integer green;
private Integer blue;
private Integer alpha;
private Integer thickness;
 
//-----------------------------------------------------------------
//-----------------------------------------------------------------
//
public Pen(Integer penType, Integer color, Integer thickness) {
this.penType = penType;
//色を直接指定したいとき
public Pen(/*Integer penType,*/ Integer color, Integer thickness) {
//this.penType = penType;
this.color = color;
this.thickness = thickness;
}
//色をRGBで指定したいとき alphaはアルファ値で透明度(0から255で、0の時に完全な透明になる)
public Pen(Integer alpha, Integer red,Integer green,Integer blue, Integer thickness) {
this.alpha = alpha;
this.red = red;
this.green = green;
this.blue = blue;
this.thickness = thickness;
}
 
//-----------------------------------------------------------------
// getter
public Integer getPenType() {
return this.penType;
// public Integer getPenType() {
// return this.penType;
// }
 
public Integer getColor() {
return this.color;
}
 
public Integer getColor() {
return this.getColor();
 
public Integer getAlpha(){
return this.alpha;
}
 
public Integer getRed(){
return this.red;
}
 
 
public Integer getGreen(){
return this.green;
}
 
public Integer getBlue(){
return this.blue;
}
 
 
public Integer getThickness() {
return this.thickness;
}
//-----------------------------------------------------------------
// setter
 
public void setColor(Integer color ){
this.color = color;
}
 
public void setAlpha(Integer alpha){
this.alpha = alpha;
}
 
public void setRed(Integer red){
this.red = red;
}
 
public void setGreen(Integer green){
this.green = green;
}
 
public void setBlue(Integer blue){
this.blue = blue;
}
 
 
public void setThickness(Integer thickness){
this.thickness = thickness;
}
//-----------------------------------------------------------------
 
}
View
14
app/src/main/java/org/ntlab/acanthus_client/views/paint/PaintCanvas.java
import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
 
import org.ntlab.acanthus_client.entities.Pen;
import org.ntlab.acanthus_client.entities.Position;
import org.ntlab.acanthus_client.entities.Stroke;
 
import java.io.ByteArrayOutputStream;
private int curw;
private int curh;
private int curoldw;
private int curoldh;
private Pen pen;
 
 
//-----------------------------------------------------------------
//-----------------------------------------------------------------
public PaintCanvas(Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
 
pen = new Pen(255,0,0,0,20);
//pen =new Pen(Color.BLACK,20);//新しくPenクラスを作り色と幅の値を設定
path = new Path(); // 図形描画
clonepath = new Path(); // 図形描画
latestpath = new Path(); // 図形描画
paint = new Paint();//筆の種類
clonepaint = new Paint();//筆の種類
latestpaint = new Paint();//筆の種類
paint.setColor(Color.BLACK);//色の指定
paint.setColor(Color.argb(pen.getAlpha(),pen.getRed(),pen.getGreen(),pen.getBlue()));//色の指定
paint.setStyle(Paint.Style.STROKE);//線をひく
paint.setStrokeWidth(20);//幅
paint.setStrokeWidth(pen.getThickness());//幅
clonepaint.setColor(Color.RED);//色の指定
clonepaint.setStyle(Paint.Style.STROKE);//線をひく
clonepaint.setStrokeWidth(20);//幅
latestpaint.setColor(Color.GREEN);//色の指定
public Canvas getCurCanvas() {
return curCanvas;
}
 
public Pen getPen(){return pen;}
 
//-----------------------------------------------------------------
// setter
public void setPaintViewModel(PaintViewModel paintViewModel) {
this.paintViewModel = paintViewModel;
protected void onDraw(Canvas canvas) {
super.onDraw(curCanvas);
//canvas.setBitmap(image);
//curCanvas = canvas;
// paint.setColor(pen.getColor());
// paint.setStrokeWidth(pen.getThickness());
paint.setColor(Color.argb(pen.getAlpha(),pen.getRed(),pen.getGreen(),pen.getBlue()));
paint.setStrokeWidth(pen.getThickness());
canvas.drawPath(path, paint);
canvas.drawPath(clonepath, clonepaint);
canvas.drawPath(latestpath,latestpaint);
curCanvas.drawPath(path, paint);
View
app/src/main/java/org/ntlab/acanthus_client/views/paint/PaintToolBar.java
View
app/src/main/java/org/ntlab/acanthus_client/views/paint/PenDetailsFragment.java
View
app/src/main/java/org/ntlab/acanthus_client/views/paint/StrokeCanvasView.java 0 → 100644
View
app/src/main/res/drawable/shape_style.xml 0 → 100644
View
app/src/main/res/layout/activity_paint.xml
View
app/src/main/res/layout/fragment_pen_detail.xml