我已为onDragShadow
覆盖了DragShadowBuilder
@Override
public void onDrawShadow(Canvas canvas) {
super.onDrawShadow(canvas);
Bitmap bitmap = InGameActivity.getRandomBitmap();
Rect source = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight());
canvas.drawBitmap(bitmap, source, source, null);
}
我已经确认位图不是null但是当我拖动时,没有显示任何内容。有什么想法吗?
答案 0 :(得分:2)
如果你想按原样绘制位图(即你想要整个事物),请使用:
canvas.drawBitmap(bitmap, null, source, null);
第二个参数用于指定要绘制的位图子集的位置(如果不需要子集,则可以为null)。如果你将src和dst(第二和第三个参数)设置为同一个对象,我希望方法中存在冲突。
答案 1 :(得分:1)
清单:
位图是否有效,即不是全部透明或与背景颜色相同?您可以在Android Studio调试器中轻松查看。
位图范围内的源矩形(即参数2,而不是上面容易显示的3)是不是?您可以将其设置为null,这可以是一个很好的调试步骤。
您的目标矩形是否在画布的范围内?
你有第四个参数'paint',它具有低alpha值吗?尝试'paint.setAlpha(255)'或使用'null'作为第4个参数。
您是否在控制台中看到此消息? “OpenGLRenderer:位图太大而无法上传到纹理中”?如果是,请参阅:"Bitmap too large to be uploaded into a texture"