Đây là mã của phần mở rộng đơn giản của ImageView cho phép người dùng vẽ bằng ngón tay.ImageView: phương pháp onDraw vẽ "đằng sau" nền hình ảnh, không phải ở đầu
public class MyImageView extends ImageView {
List<Point> points = new ArrayList<Point>();
Paint paint = new Paint();
public MyImageView(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
public void onDraw(Canvas canvas) {
for (Point point : points) {
canvas.drawCircle(point.x, point.y, 5, paint);
// Log.d(TAG, "Painting: "+point);
}
super.onDraw(canvas);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
super.onTouchEvent(event);
Point point = new Point();
point.x = event.getX();
point.y = event.getY();
points.add(point);
invalidate();
Log.d("", "point: " + point);
return true;
}
class Point {
float x, y;
@Override
public String toString() {
return x + ", " + y;
}
}
}
Công việc này khá tốt.
Bây giờ, tôi muốn sử dụng mã này để vẽ ở đầu bitmap.
tôi đã sử dụng:
MyImageView ivPic = (MyImageView) dialog.findViewById(R.id.ivPic);
ivPic.setImageBitmap(picture);
Nhưng các bản vẽ được vẽ "đằng sau" Bitmap:
Bạn có bất cứ ý tưởng làm thế nào tôi có thể rút ra vào "top" của Bitmap?
Bạn đã quản lý để có được một bitmap với bản vẽ của bạn và bitmap của bạn phía sau? tôi đang làm như vậy và không thể có được để tiết kiệm bitmap thay đổi –