我使用非常標準的拖放實現來拖動一個圖釘並將其放置在圖像視圖的頂部以指向圖像的特定部分:在捏和縮放時保持在imageview上的拖放視圖位置
@Override
public boolean onDrag(View v, DragEvent event) {
int action = event.getAction();
switch (event.getAction()) {
case DragEvent.ACTION_DRAG_STARTED:
break;
case DragEvent.ACTION_DRAG_ENTERED:
break;
case DragEvent.ACTION_DRAG_EXITED:
break;
case DragEvent.ACTION_DROP:
View view = (View) event.getLocalState();
ViewGroup owner = (ViewGroup) view.getParent();
owner.removeView(view);
FrameLayout container = (FrameLayout) v;
container.addView(view);
FrameLayout.LayoutParams lp = new FrameLayout.LayoutParams(FrameLayout.LayoutParams.WRAP_CONTENT, FrameLayout.LayoutParams.WRAP_CONTENT);
int a = Math.round((event.getX() - (view.getWidth()/2)));
int b = Math.round((event.getY() - (view.getHeight()/2)));
lp.setMargins(a,b,0,0);
view.setLayoutParams(lp);
view.setVisibility(View.VISIBLE);
//Gets actual pixel location on image - currently unused
float[] point = new float[] {event.getX(), event.getY()};
Matrix inverse = new Matrix();
iv.getImageMatrix().invert(inverse);
inverse.mapPoints(point);
float density = getResources().getDisplayMetrics().density;
point[0] /= density;
point[1] /= density;
break;
case DragEvent.ACTION_DRAG_ENDED:
break;
default:
break;
}
的ImageView的是可縮放的圖像視圖(chrisbanes/PhotoView中),如果圖像保持在它的通常的100%比例的座標的所有工作,因爲他們應該並且將標記物放置正確。但是,如果我放大圖像,將標記放在特定點上進行更好的控制,同時在縮小標記時獲得正確的座標並不會保留在與圖像相同的位置。簡單說就是父母。請讓我知道你想什麼代碼,看看(有沒有多少人),或者如果我需要重新解釋
感謝
您好,我有相關的矩形區域上的圖像相同的問題。我可以分享整個代碼,但它很長嗎?您只需使用Marker的代碼管理矩形區域的代碼。我用'TouchListener'代替。 – Tauqir
因此,您在圖像上放置一個圖釘,然後放大圖像。縮放後,圖釘保持放置狀態,不隨圖像移動。這是問題,還是放大後放置引腳的問題?如果前者,你是否編寫了任何代碼來移動縮放視圖中的引腳? – Cheticamp