이 인 된 onDraw 방법 내가 가진 :DrawLine 기능, 내 라인의 색상을 변경하는 경우 그것은해야하지
protected void onDraw(Canvas canvas) {
canvas.drawBitmap(bitmap, 0, 0, mBitmapPaint); // Deseneaza Bitmapul mutabil
if (shapes.size() > 0) {
for (ShapeFromLines shapesfromline : shapes) {
if (shapesfromline.size() > 1) {
LogService.log("", "shapes: " + shapesfromline.size());
float startx, starty;
startx = shapesfromline.get(0).stopX;
starty = shapesfromline.get(0).stopY;
for (int i = 1; i < shapesfromline.size(); i++) {
LogService.log("", "----size color in ondraw: " + shapesfromline.get(i).getPaint().getColor());
canvas.drawLine(startx, starty, shapesfromline.get(i).getStopX(), shapesfromline.get(i).stopY, shapesfromline.get(i).getPaint());
LogService.log("", "shapes: drawn");
startx = shapesfromline.get(i).stopX;
starty = shapesfromline.get(i).stopY;
}
}
}
}
for (int i = 0; i < bitmaps.size(); i++) {
if ((bitmaps.get(i).bitmap != null)) {
canvas.save();
canvas.rotate(bitmaps.get(i).rectrotateVal, bitmaps.get(i).pX + (bitmaps.get(i).bitmap.getWidth()/2), bitmaps.get(i).pY + (bitmaps.get(i).bitmap.getHeight()/2));
mBitmapPaint.setAlpha(bitmaps.get(i).alpha);
// canvas.drawRect(bitmaps.get(i).rect, cPaint);
canvas.drawBitmap(bitmaps.get(i).bitmap, bitmaps.get(i).pX, bitmaps.get(i).pY, mBitmapPaint);
canvas.restore();
}
}
mBitmapPaint.setAlpha(255);
canvas.drawPath(mPath, paint);
}
}
당신이 II가 어떤 모양을 가질 수로 (각 모양이 포인트라는 ShapesFromLines의 ArrayList를에서 만든 이제 내 모양의 첫 번째 점은 touchDown (ontouchevent)에서 현재 위치를 저장 한 다음 다른 점을 터치 업하여 저장합니다. 화면을 처음 누르면 점을 그리고 두 번째 점은 그립니다. 시간, 그것은 그 2 포인트를 연결하고, 3 등. 각 포인트에 X, Y 및 페인트를 저장합니다. 당신이 볼 수 있듯이, 그 지점에 대한 페인트 값을 반환하는 그리기 logservice 있습니다. 지금 나는 변경하는 색상 선택기가있는 기능이 있어야합니다. 현재 패스의 색 그러나 이것은 모든 직선의 색깔을 바꾸는 역할을합니다. 이제 그림을 추가 할 때 기본 페인트가 투명하게 설정되었는지 확인했습니다. 그리고 선은 투명하지만 점 (연결되어야 함)은 올바른 색을 갖습니다. 무엇이 잘못 될 수 있겠는가?