作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
遇到了让 dragshaddow(由 DragShadowBuilder 创建)在拖动发生时对某物使用react的问题。
有人知道应该怎么做吗?
最佳答案
这是我自定义拖动阴影生成器的完整代码 ( gist for custom drag shadow) 。
但是,正如其他人所说,无法使用 API-11 中引入的 native 功能修改拖动阴影。
package com.marcingil.dragshadow;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Point;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.view.View;
public class ImageDragShadowBuilder extends View.DragShadowBuilder {
private Drawable shadow;
private 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);
}
}
关于android - 在拖动时更改 android 中的 dragshadow,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8095459/
我有一个自定义的相对布局,我可以在其中拖放一些纽扣。我在我的 onTouch 中开始拖动: /** * */ @Override public boolean onTouch(View view,
我像这样用 ObjectAnimator 旋转了一个 TextView: ObjectAnimator rotate = ObjectAnimator.ofFloat(aRotatedTextView
遇到了让 dragshaddow(由 DragShadowBuilder 创建)在拖动发生时对某物使用react的问题。 有人知道应该怎么做吗? 最佳答案 这是我自定义拖动阴影生成器的完整代码 ( g
我是一名优秀的程序员,十分优秀!