在android中开始拖动后,如何更改拖动阴影?
我想在调用startDrag后更改dragShadow的图像。 但我找不到任何API可以做到这一点。 有什么建议我该怎么做在android中开始拖动后,如何更改拖动阴影?,android,drag,Android,Drag,我想在调用startDrag后更改dragShadow的图像。 但我找不到任何API可以做到这一点。 有什么建议我该怎么做 ClipData.Item item = new ClipData.Item((CharSequence) v.getTag()); String[] mimeTypes = {ClipDescription.MIMETYPE_TEXT_PLAIN}; ClipData dragData = new C
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 dragShadow= new View.DragShadowBuilder(((ImageButton)findViewById(R.id.rele_button)));
更多代码
扩展View.DragShadowBuilder的类的代码
public class ImageDragShadowBuilder extends View.DragShadowBuilder {
private static Drawable shadow;
ImageDragShadowBuilder() {
super();
}
public static View.DragShadowBuilder fromResource(Context context, int drawableId) {
ImageDragShadowBuilder builder = new ImageDragShadowBuilder();
builder.shadow = context.getResources().getDrawable(drawableId);
if (builder.shadow == null) {
throw new NullPointerException("Drawable from id is null");
}
builder.shadow.setBounds(0, 0, builder.shadow.getMinimumWidth(), builder.shadow.getMinimumHeight());
return builder;
}
public static View.DragShadowBuilder fromBitmap(Context context, Bitmap bmp) {
if (bmp == null) {
throw new IllegalArgumentException("Bitmap cannot be null");
}
ImageDragShadowBuilder builder = new ImageDragShadowBuilder();
builder.shadow = new BitmapDrawable(context.getResources(), bmp);
builder.shadow.setBounds(0, 0, builder.shadow.getMinimumWidth(), builder.shadow.getMinimumHeight());
return builder;
}
@Override
public void onDrawShadow(Canvas canvas) {
shadow.draw(canvas);
}
@Override
public void onProvideShadowMetrics(Point shadowSize, Point shadowTouchPoint) {
shadowSize.x = shadow.getMinimumWidth();
shadowSize.y = shadow.getMinimumHeight();
shadowTouchPoint.x = (int)(shadowSize.x / 2);
shadowTouchPoint.y = (int)(shadowSize.y / 2);
}
}
调用开始拖动后的更改代码
此代码属于onDrag函数
case DragEvent.ACTION_DRAG_ENTERED:
ImageDragShadowBuilder.fromResource(getBaseContext(), R.mipmap.phone_icon);
overide View.DragShadowBuilder类和使用。你可以在我之前看到的和我尝试过的中找到一个示例代码,但我无法更改。请发布更多代码