2015-12-18 13 views
8

Vì vậy, tôi đang tái tạo một triển khai tương tự như cách thực hiện với bong bóng trò chuyện facebook và đã tạo thành công vùng chứa thả cho bong bóng bị xóa. Chức năng tôi muốn đạt được là tôi có thể thả bong bóng vào một vùng xóa (đó là một hình tròn với dấu chéo). Khi tôi kéo bong bóng bên trong hình tròn, tôi hy vọng sẽ thay đổi kích thước hình tròn và làm cho nó to hơn. Vì vậy, khi tôi để bong bóng bên trong hình phóng to, nó sẽ biến mất. Tôi không thể thay đổi kích thước hình ảnh này khi tôi di chuột qua bong bóng của mình. Chức năng xóa được thực hiện.Thay đổi kích thước vùng thả cho bong bóng phá hủy

tôi muốn gợi ý về động định cỡ lại hình ảnh vùng thả tròn (mở rộng và ký kết hợp đồng trên cơ sở dao động hoặc không di chuột)

Bất kỳ con trỏ được hoan nghênh. Cảm ơn trước.

Hình ảnh bên dưới để hiểu.

enter image description here

enter image description here

+0

bạn có thể gửi mã có liên quan và xml? –

+0

Có điều gì đó bạn không nhận được từ http://stackoverflow.com/questions/15975988/what-apis-in-android-is-facebook-using-to-create-chat-heads – James

+0

Bạn có bất kỳ cuộc gọi nào lại không hệ thống để biết liệu bong bóng có được đặt bên trong vùng xóa không? – Dinash

Trả lời

-1

Bạn có thể phát hiện các sự kiện di chuột?
Vui lòng thử điều này.

onHover

versionNameTextView.setScaleX(1f); 
versionNameTextView.setScaleY(1f); 
circlerImageView.animate().scaleX(1.5f).scaleY(1.5f).setDuration(500).start(); 

onHoverEnd

versionNameTextView.setScaleX(1.5f); 
versionNameTextView.setScaleY(1.5f); 
circlerImageView.animate().scaleX(1f).scaleY(1f).setDuration(500).start(); 
0

Đơn giản chỉ cần sửa đổi kéo và thả mẫu sẵn here có hành vi dự định của bạn. Hi vọng điêu nay co ich.

public class MyNewActivity extends Activity { 
ImageView img; 
String msg; 
private android.widget.RelativeLayout.LayoutParams layoutParams; 
private View target; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.my_drag_drop); 
    img=(ImageView)findViewById(R.id.imageView); 
    target=findViewById(R.id.target); 

    img.setOnLongClickListener(new View.OnLongClickListener() { 
     @Override 
     public boolean onLongClick(View v) { 
      ClipData.Item item = new ClipData.Item((CharSequence)v.getTag()); 
      String[] mimeTypes = {ClipDescription.MIMETYPE_TEXT_PLAIN}; 

      ClipData dragData = new ClipData(v.getTag().toString(),mimeTypes, item); 
      View.DragShadowBuilder myShadow = new View.DragShadowBuilder(img); 

      v.startDrag(dragData,myShadow,null,0); 
      return true; 
     } 
    }); 

    img.setOnDragListener(onDragListener1); 
    target.setOnDragListener(onDragListener1); 

    img.setOnTouchListener(new View.OnTouchListener() { 
     @Override 
     public boolean onTouch(View v, MotionEvent event) { 
      if (event.getAction() == MotionEvent.ACTION_DOWN) { 
       ClipData data = ClipData.newPlainText("", ""); 
       View.DragShadowBuilder shadowBuilder = new View.DragShadowBuilder(img); 

       img.startDrag(data, shadowBuilder, img, 0); 
       img.setVisibility(View.INVISIBLE); 
       return true; 
      } 
      else 
      { 
       return false; 
      } 
     } 
    }); 
} 

private boolean isViewScalled=false; 

View.OnDragListener onDragListener1=new View.OnDragListener() { 
    @Override 
    public boolean onDrag(View v, DragEvent event) { 
     switch(event.getAction()) 
     { 
      case DragEvent.ACTION_DRAG_STARTED: 
       Log.d(msg, "Action is DragEvent.ACTION_DRAG_STARTED"); 

       // Do nothing 
       break; 

      case DragEvent.ACTION_DRAG_ENTERED: 
       Log.d(msg, "Action is DragEvent.ACTION_DRAG_ENTERED"); 
       if(!isViewScalled) { 
        target.animate().scaleXBy(.5f).scaleYBy(.5f).start(); 
        isViewScalled=true; 
       } 
       break; 

      case DragEvent.ACTION_DRAG_EXITED : 
       Log.d(msg, "Action is DragEvent.ACTION_DRAG_EXITED"); 
       if(isViewScalled) { 
        target.animate().scaleXBy(-.5f).scaleYBy(-.5f).start(); 
        isViewScalled=false; 
       } 
       break; 

      case DragEvent.ACTION_DRAG_LOCATION : 
       Log.d(msg, "Action is DragEvent.ACTION_DRAG_LOCATION"); 
       break; 

      case DragEvent.ACTION_DRAG_ENDED : 
       Log.d(msg, "Action is DragEvent.ACTION_DRAG_ENDED"); 

       // Do something 
       break; 

      case DragEvent.ACTION_DROP: 
       Log.d(msg, "ACTION_DROP event"); 
       break; 
      default: break; 
     } 
     return true; 
    } 
}; 

}

Và Layout

<?xml version="1.0" encoding="utf-8"?> 

<ImageView 
    android:layout_width="75dp" 
    android:layout_height="75dp" 
    android:id="@+id/imageView" android:scaleType="fitXY" 
    android:src="@drawable/abc_btn_radio_material" /> 


<ImageView 
    android:layout_width="125dp" 
    android:layout_height="125dp" android:scaleType="fitXY" 
    android:id="@+id/target" android:layout_centerHorizontal="true" 
    android:src="@drawable/abc_btn_radio_material" android:layout_alignParentBottom="true" /> 

Các vấn đề liên quan