我在Android棒棒糖(minSdk = 21)上,並且想要實現用拖動手勢來移動浮動動作按鈕。這個按鈕是ImageButton的一個自定義子類,代碼在這裏描述,所以我不會重複它:Define default values for layout_width and layout_height properties for a subclass in a style拖動陰影對於圓形浮動動作按鈕是正方形
對於拖動,我使用這裏描述的方式:http://developer.android.com/guide/topics/ui/drag-drop.html。這裏是我的代碼如下所示:
favoriteButton.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
v.startDrag(null, new View.DragShadowBuilder(v), null, 0);
return true;
}
});
findViewById(R.id.test_main_layout).setOnDragListener(new View.OnDragListener() {
@Override
public boolean onDrag(View v, DragEvent event) {
switch (event.getAction()) {
case DragEvent.ACTION_DRAG_ENTERED:
favoriteButton.setVisibility(View.INVISIBLE);
break;
case DragEvent.ACTION_DROP:
favoriteButton.setX(event.getX() - favoriteButton.getWidth()/2);
favoriteButton.setY(event.getY() - favoriteButton.getHeight()/2);
favoriteButton.setVisibility(View.VISIBLE);
break;
}
return true;
}
});
一般情況下,它的工作原理,但問題是「拖影」:它是方形的。出於這個原因或其他原因,它不尊重FAB的橢圓形輪廓。
我該如何使其行爲正確?