剛剛接觸安卓,最近在做一個(gè)小項(xiàng)目,用path根據(jù)四個(gè)點(diǎn)坐標(biāo)繪制了一個(gè)矩形,需要用圖片來(lái)填充矩形。因?yàn)楦鶕?jù)路徑繪制的矩形是傾斜的,所以填充圖片不太容易,經(jīng)過(guò)查資料,通過(guò)試驗(yàn)得到了一種方法,分享一下:
為東臺(tái)等地區(qū)用戶提供了全套網(wǎng)頁(yè)設(shè)計(jì)制作服務(wù),及東臺(tái)網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為網(wǎng)站設(shè)計(jì)、成都網(wǎng)站設(shè)計(jì)、東臺(tái)網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!
//繪制小麥田代碼其中四個(gè)點(diǎn)坐標(biāo)是根據(jù)經(jīng)緯度轉(zhuǎn)換成的屏幕坐標(biāo),因此畫出來(lái)的小麥田不一定是正的
Paint mField = new Paint();
mField.setAntiAlias(true);
Path mFieldPath = new Path();
mFieldPath.moveTo(X1,Y1);
mFieldPath.lineTo(X2,Y2);
mFieldPath.lineTo(X3,Y3);
mFieldPath.lineTo(X4,Y4);
mFieldPath.close();
mField.setARGB(200, 255, 215, 0);//設(shè)置封閉路徑的填充色為金***
canvas.drawPath(mFieldPath, mField);
這樣繪制出來(lái)的圖形為一個(gè)金***矩形,不夠美觀,因此想到使用圖片來(lái)填充
直接加上如下代碼:
Shader mShader = new BitmapShader(fieldBitmap,Shader.TileMode.REPEAT,Shader.TileMode.MIRROR);
mField.setShader(mShader);
其中,filedBitmap為指定的圖片,可以通過(guò)mFieldBitmap = BitmapFactory.decodeResource(this.getResources(), R.drawable.feild);方式獲得