如何在Android的阴影框中显示文本项目



当我拖动项目时,我想在阴影部分中显示文本,我想在阴影部分中显示文本(当用户长按并想放到另一个地方时)!在 startdrag 中,当我调用 myshadow 时,我有数据和项目文本,我无法在阴影框中设置文本(clor 是黄色的)。

OnItemLongClickListener listSourceItemLongClickListener = new OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> l, View v, int position,
        long id) {
    // Selected item is passed as item in dragData
    ClipData.Item item = new ClipData.Item(lv_arr[position]);
    String[] clipDescription = { ClipDescription.MIMETYPE_TEXT_PLAIN };
    ClipData dragData = new ClipData((CharSequence) v.getTag(),
            clipDescription, item);
    DragShadowBuilder myShadow = new MyDragShadowBuilder(v);
    v.startDrag(dragData, // ClipData
            myShadow, // View.DragShadowBuilder
            lv_arr[position], // Object myLocalState
            0); // flags
    // commentMsg = v.getTag() + " : onLongClick.n";
    // comments.setText(commentMsg);
    return true;
}
}
private static class MyDragShadowBuilder extends View.DragShadowBuilder{
  private static Drawable shadow;
public MyDragShadowBuilder(View v) {
    super(v);
    shadow = new ColorDrawable(Color.LTGRAY);
}
@Override
public void onProvideShadowMetrics(Point size, Point touch) {
    int width = getView().getWidth();
    int height = getView().getHeight();
    shadow.setBounds(0, 0, width, height);
    size.set(width, height);
    touch.set(width / 2, height / 2);
}

@Override
public void onDrawShadow(Canvas canvas) {
    shadow.draw(canvas);
}
}
我相信

您可以覆盖onDrawShadow(Canvas canvas)(您实际上已经覆盖了)并使用 canvas 对象引用来调用该方法drawText传递您想要存在的文本。

试一试。

是的,谢谢你 是的 ;我刚刚补充说,这对我来说是工作!

    @Override
    public void onDrawShadow(Canvas canvas) {
        shadow.draw(canvas);
        super.onDrawShadow(canvas);
    }

最新更新