所以我複製了一個類似於facebook聊天泡泡的實現,併成功創建了要放置的泡泡的放置容器。我打算實現的功能是我應該能夠在刪除區域(這恰好是帶有交叉標記的圓形圖像)中放置一個氣泡。當我拖動圓形圖像內的泡泡時,我希望調整圓形圖像的大小並使其變大。所以當我將這個泡泡留在放大的圖像中時,它應該消失。當我將氣泡懸停在其上時,我無法調整此圖像的大小。刪除功能已到位。調整泡泡破壞區域
我想對循環拖放區圖像的動態重新大小的指針(擴大和基礎收縮的徘徊或不徘徊)
任何指針歡迎。提前致謝。
以下圖片以供瞭解。
所以我複製了一個類似於facebook聊天泡泡的實現,併成功創建了要放置的泡泡的放置容器。我打算實現的功能是我應該能夠在刪除區域(這恰好是帶有交叉標記的圓形圖像)中放置一個氣泡。當我拖動圓形圖像內的泡泡時,我希望調整圓形圖像的大小並使其變大。所以當我將這個泡泡留在放大的圖像中時,它應該消失。當我將氣泡懸停在其上時,我無法調整此圖像的大小。刪除功能已到位。調整泡泡破壞區域
我想對循環拖放區圖像的動態重新大小的指針(擴大和基礎收縮的徘徊或不徘徊)
任何指針歡迎。提前致謝。
以下圖片以供瞭解。
可以檢測懸停事件?
請試試這個。
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();
只需修改拖放可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" />
您可以發佈相關的代碼和XML? –
有沒有你沒有從http://stackoverflow.com/questions/15975988/what-apis-in-android-is-facebook-using-to-create-chat-heads – James
你有任何回電系統知道氣泡是否放置在刪除區域內? – Dinash