2013-04-12 39 views
6

im cố gắng tìm hiểu bản vẽ bitmap trên vải với việc sử dụngAndroid: Sử dụng ma trận để vẽ bitmap

drawBitmap(Bitmap bitmap, Matrix matrix, Paint paint); 

Bởi vì tôi cần một trong pngs của tôi để tăng kích thước của nó gần như mọi khung hình, tôi cố gắng làm điều đó với

Matrix matrix=new Matrix(); 
matrix.setScale(0.001f,0.001f); 

và điều này làm việc tốt cho tôi. Nhưng vấn đề tôi có là khi đặt hình ảnh vào đúng tọa độ. Tôi nghĩ một trong hai người đó sẽ làm điều đó

matrix.setTranslate (x, y); matrix.postTranslate (x, y);

Nhưng đó là nơi bị nhầm lẫn, hình ảnh luôn được vẽ trên 0,0 tọa độ. Trước khi tôi cần hình ảnh thu nhỏ, tôi đã sử dụng các hình ảnh

canvas.drawBitmap(bmp,x,y,paint); 

nơi tôi có thể chỉ định điểm cần vẽ. Tôi có thể làm như vậy với phiên bản ma trận của drawBitmap không? hoặc tôi nên thay đổi kích thước hình ảnh của mình như thế nào?

Trả lời

10

Sử dụng phiên bản ma trận của bitmap vẽ. Điều quan trọng là làm điều đó theo đúng thứ tự. Bắt đầu với ma trận nhận dạng. Sau đó, quy mô nó bằng bất kỳ yếu tố nào bạn muốn sử dụng postScale. Điều đó sẽ làm cho nó phát triển nhưng không thay đổi nguồn gốc. Sau đó dịch nó bằng cách sử dụng postTranslate, nó sẽ di chuyển nó sang trái/phải/lên/xuống. Sau đó vẽ bitmap lên canvas, chuyển nó vào ma trận. Nó sẽ mở rộng và di chuyển bitmap bởi ma trận trước khi sao chép nó.

+0

Thx, công việc này – Anderiel

Các vấn đề liên quan