3
내 안드로이드 앱에서 이미지 드래그를 사용하려고합니다. 내 이미지 드래그를 멈 추면 DragEvent.ACTION_DROP가 호출되지 않습니다. 돕는DragEvent.ACTION_DROP가 호출되지 않습니다
01-30 13:50:25.003: I/ViewRootImpl(2198): Reporting drop result: false
감사 : 내 로그 고양이에서
나는이 전화를받을.
public class buildImage extends Activity implements OnTouchListener, OnDragListener
{
private LinearLayout slider;
private RelativeLayout board;
@Override
protected void onCreate(Bundle savedInstanceState) {
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
super.onCreate(savedInstanceState);
setContentView(R.layout.build_image);
//drawing = (SignatureViewModed) findViewById(R.id.myTest);
slider = (LinearLayout) findViewById(R.id.imageSlider);
board = (RelativeLayout) findViewById(R.id.borad);
setImagesSlider();
}
public void setImagesSlider()
{
ImageView image = new ImageView(this);
image.setLayoutParams(new LinearLayout.LayoutParams(100, 100));
Drawable draw = getResources().getDrawable(R.drawable.images);
image.setImageDrawable(draw);
image.setOnDragListener(this);
image.setOnTouchListener(this);
slider.addView(image);
}
@Override
public boolean onTouch(View view, MotionEvent event) {
// TODO Auto-generated method stub
if (event.getAction() == MotionEvent.ACTION_DOWN) {
ClipData data = ClipData.newPlainText("tests", "test");
DragShadowBuilder shadowBuilder = new View.DragShadowBuilder(view);
view.startDrag(data, shadowBuilder, view, 0);
//view.setVisibility(View.INVISIBLE);
return true;
} else {
return false;
}
}
@Override
public boolean onDrag(View v, DragEvent event) {
// TODO Auto-generated method stub
int action = event.getAction();
switch (event.getAction()) {
case DragEvent.ACTION_DRAG_STARTED:
{
Log.i("check6", "check6");
// do nothing
return true;
}
case DragEvent.ACTION_DRAG_ENTERED:
{
Log.i("check4", "check4");
//v.setBackgroundDrawable(enterShape);
return true;
}
case DragEvent.ACTION_DRAG_EXITED:
{
// v.setBackgroundDrawable(normalShape);
Log.i("check3", "check3");
return true;
}
case DragEvent.ACTION_DROP:
// Dropped, reassign View to ViewGroup
Log.i("check", "check");
addNewImage(event);
return true;
case DragEvent.ACTION_DRAG_ENDED:
{
Log.i("check2", "check2");
// addNewImage(event);
return true;
}
default:
break;
}
return true;
}
public void addNewImage(DragEvent event)
{
ImageView image = new ImageView(this);
image.setLayoutParams(new LinearLayout.LayoutParams(100, 100));
Drawable draw = getResources().getDrawable(R.drawable.images);
image.setImageDrawable(draw);
board.addView(image);
float x = event.getX();
float y = event.getY();
image.setX(x);
image.setY(y);
Log.i("margin", "x " + x + " y " + y);
}
}
내 XML
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<RelativeLayout
android:layout_width="fill_parent"
android:id="@+id/borad"
android:background="@android:color/darker_gray"
android:layout_above="@+id/temp"
android:layout_height="fill_parent" >
</RelativeLayout>
<ScrollView
android:layout_width="fill_parent"
android:id="@+id/temp"
android:layout_alignParentBottom="true"
android:layout_height="wrap_content" >
<LinearLayout
android:id="@+id/imageSlider"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
</LinearLayout>
</ScrollView>
</RelativeLayout>
당신은에 해당 이미지를 삭제하기 위해 뭔가를해야