我想使用4x4像素位圖(牆上的另一塊磚)繪製線條,該線條可以在任何位置開始/停止並沿任何方向前進。使用畫布創建自定義線條
我想類似如下:
Bitmap bm = BitmapFactory.decodeResource(getResources(), R.drawable.brick);
int width = bm.getWidth();
int height = bm.getHeight();
float newWidth = Math.abs(line.startX - line.stopX);
float newHeight = Math.abs(line.startY - line.stopY);
float scaleWidth = ((float) newWidth)/width;
float scaleHeight = ((float) newHeight)/height;
Matrix matrix = new Matrix();
Matrix m = new Matrix();
// resize the bit map
matrix.postScale(scaleWidth, scaleHeight);
// recreate the new Bitmap
Bitmap resizedBitmap = Bitmap.createBitmap(bm, (int)line.startX,(int)line.startY, width, height, matrix, false);
canvas.drawBitmap(resizedBitmap, m, paint);
我意識到這是一個調整大小,而不是繪製.BMP順序。此外它會拋出錯誤x + width must be <= bitmap.width()
有沒有人有任何建議的技術在這裏使用?
您是否正在尋找依次使用最緊密的包裝來防止重疊,或者只是在某些恆定的位置增量上對位圖進行構圖? – hunt
尋找繪製時沒有重疊......我可以計算出我想繪製的線的方程式'Y = MX + C'並且考慮了垂直情況 – avrono