Android的影子dragshadowbuilder大小 [英] android dragshadowbuilder shadow size
本文介绍了Android的影子dragshadowbuilder大小的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我要开始拖动时提高图像的阴影
我创建的自定义dragshadowbuilder,增加大小双,但没有happend。
I want to increase shadow of image when dragging start I created custom dragshadowbuilder and increase size double, but nothing happend.
public class ImageDragShadowBuilder extends View.DragShadowBuilder {
public ImageDragShadowBuilder(View v) {
super(v);
}
@Override
public void onProvideShadowMetrics(Point shadowSize, Point touchPoint) {
shadowSize.set(getView().getWidth()*2, getView().getHeight()*2);
touchPoint.set(getView().getWidth() / 2, getView().getHeight() / 2);
}}
这是什么原因?
推荐答案
那么,这是不是在文档,以便清晰。我使用的是给建设者为减少大小,你只需要乘以为您的病情变化划分;
Well, this is not so clear in documentation. I'm using given builder for decrease size you just need to change division by multiply for your condition ;
private static class MyDragShadowBuilder extends View.DragShadowBuilder {
private Point mScaleFactor;
// Defines the constructor for myDragShadowBuilder
public MyDragShadowBuilder(View v) {
// Stores the View parameter passed to myDragShadowBuilder.
super(v);
}
// Defines a callback that sends the drag shadow dimensions and touch point back to the
// system.
@Override
public void onProvideShadowMetrics (Point size, Point touch) {
// Defines local variables
int width;
int height;
// Sets the width of the shadow to half the width of the original View
width = getView().getWidth() / 2;
// Sets the height of the shadow to half the height of the original View
height = getView().getHeight() / 2;
// Sets the size parameter's width and height values. These get back to the system
// through the size parameter.
size.set(width, height);
// Sets size parameter to member that will be used for scaling shadow image.
mScaleFactor = size;
// Sets the touch point's position to be in the middle of the drag shadow
touch.set(width / 2, height / 2);
}
@Override
public void onDrawShadow(Canvas canvas) {
// Draws the ColorDrawable in the Canvas passed in from the system.
canvas.scale(mScaleFactor.x/(float)getView().getWidth(), mScaleFactor.y/(float)getView().getHeight());
getView().draw(canvas);
}
}
这篇关于Android的影子dragshadowbuilder大小的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文