-1
레이아웃 내에서보기를 이동하고 API 레벨 11 (startDrag, shadowView로 View.DragShadowBuilder를 덮어 씀)로 구현하고 싶습니다. 그러나 문제가 생겨서 뷰를 놓을 때 실제 좌표를 가져올 수 없습니다.드래그 할 때 드래그 섀도우 좌표를 가져 옵니까?
나는 getView.getX()
을 사용해 보았지만 드롭보기에서는 값이 0으로 효과적이지 못했습니다.
시간 드롭보기가있는 경우 어떻게 좌표를 얻을 수 있습니까?
public SimeDragShadowView(View view, Context context) {
super(view);
shadow = new ColorDrawable(Color.BLUE);
mDragShadowView = getView();
mInitX = (int) view.getX();
mInitY = SimeTabContainer.mDownViewInitY;
if(DEBUG){
Log.d(TAG, " shadow button width is .."+getView().getWidth() +"... height is .."+getView().getHeight());
}
}
@Override
public void onProvideShadowMetrics(Point size, Point touch) {
// Defines local variables
if(DEBUG){
Log.d(TAG, " onProvideShadowMetrics()");
}
int width, height;
width = getView().getWidth();
height = getView().getHeight();
shadow.setBounds(mInitX-10, mInitY-10, mInitX + width, mInitY + height);
size.set(width, height);
touch.set(width/2, height/2);
}
@Override
public void onDrawShadow(Canvas canvas) {
// Draws the ColorDrawable in the Canvas passed in from the system.
shadow.draw(canvas);
getView().draw(canvas);
if(DEBUG){
Log.d(TAG, " getView()... x cor is .."+getView().getX());
}
}