getPixel은 확대되지 않은 비트 맵에서 작업 중입니다. 나는 X와 Y가 터치 이벤트에서 온 것으로 가정하고 뷰와 관련이 있다고 가정합니다. 링크에서 두 개의 Rect 객체를 사용하여 크기 조정을하는 예제가 표시됩니다.
@Override
protected void onDraw(Canvas canvas) {
if (mBitmap != null && mState != null) {
canvas.drawBitmap(mBitmap, mRectSrc, mRectDst, mPaint);
}
}
내가 그랬다고 생각합니다. X와 Y가 RectDst가 아닌보기와 관련되기 때문에 좌표를 줌 비율로 나누기 만하면됩니다.
저는 일반적으로 Matrix 객체를 사용하여 복제, 반전 등이 쉽기 때문에 확대/축소를 수행합니다. 예를 들어 확대/축소를 Matrix를 사용하여 완료 한 경우 반전 할 수 있지만 X , Y 그리고 비트 맵을 기준으로 원래 좌표를 얻습니다.
하지만 2 개의 구형을 사용하여 매트릭스를 계산하여, 어쨌든 그것을 할 수있는 방법이있어 :
//Recreate the Matrix using the 2 Rects
Matrix m = new Matrix()
m.setRectToRect(mRectDst, mRectSrc, false);
//Transform the coordinates back to the original plan
float[] src = {x,y};
float[] dst = new float[2];
m.mapPoints(src, dst);
myBitmap.getPixel(dst[0], dst[1]);
나는 그것을 테스트하지 못했지만 작동해야한다 또는 적어도 도움을 당신이 당신의 솔루션을 찾을 수 있습니다.
안녕하세요. 저는이 문제에 대한 답변이 있으면 같은 문제에 직면하고 있습니다. 게시 해주세요 !! –