2015-12-18 4 views
8

したがって、Facebookブックチャットバブルのような同様の実装を複製し、ドロップするバブルのドロップコンテナを正常に作成しました。私が達成しようとしている機能は、削除ゾーンにバブルを落とすことができるということです(これは、十字マーク付きの円形イメージです)。円形のイメージの内側にバブルをドラッグすると、円形のイメージのサイズを変更してイメージを大きくすることを望んでいます。だから、拡大した画像の中にバブルを残すと、それは消えるはずです。私はそれの上に私の気泡を浮かべるとき、このイメージのサイズを変更することができませんでした。削除の機能が整っています。バブル破棄のドロップゾーンのサイズを変更

私は、任意のポインタは歓迎されている(ホバリングホバーかどうかに基づいて伸縮)

を円形ドロップゾーン画像の動的な再サイジング上のポインタをしたいと思います。前もって感謝します。

理解のために以下の画像。

enter image description here

enter image description here

+0

あなたは、関連するコードやXMLを投稿することができますか? –

+0

あなたから届いていないものがありますか?http://stackoverflow.com/questions/15975988/what-apis-in-android-is-facebook-using-to-create-chat-heads – James

+0

あなたはコールバックをお持ちですか?バブルが削除ゾーン内に置かれているかどうかを知るシステム? – Dinash

答えて

-1

あなたはホバーイベントを検出することはできますか?
これを試してください。

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

onHover

は、単にドラッグを修正し、あなたの意図した動作を持つことが可能なサンプルhereをドロップします。お役に立てれば。

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; 
    } 
}; 

}

とレイアウト

<?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" /> 

関連する問題