android.view.View#startDragAndDrop ( )源码实例Demo

下面列出了android.view.View#startDragAndDrop ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: user-interface-samples   文件: MainActivity.java
@Override
public boolean onLongClick(View v) {
    TextView thisTextView = (TextView) v;
    String dragContent = "Dragged Text: " + thisTextView.getText();

    //Set the drag content and type.
    ClipData.Item item = new ClipData.Item(dragContent);
    ClipData dragData = new ClipData(dragContent,
            new String[] {ClipDescription.MIMETYPE_TEXT_PLAIN}, item);

    //Set the visual look of the dragged object.
    //Can be extended and customized. Default is used here.
    View.DragShadowBuilder dragShadow = new View.DragShadowBuilder(v);

    // Starts the drag, note: global flag allows for cross-application drag.
    v.startDragAndDrop(dragData, dragShadow, null, DRAG_FLAG_GLOBAL);

    return false;
}
 
源代码2 项目: RemoteControlView   文件: Tools.java
public static void startDrag(View view){
    DraggableInfo tag = (DraggableInfo) view.getTag();
    if (tag == null){
        tag = new DraggableInfo("Text", 0, 0, 1);
    }
    Intent intent = new Intent();
    intent.putExtra("data", tag);
    ClipData dragData = ClipData.newIntent("value", intent);
    View.DragShadowBuilder myShadow = new View.DragShadowBuilder(view);
    // 震动反馈,不需要震动权限
    view.performHapticFeedback(HapticFeedbackConstants.LONG_PRESS, HapticFeedbackConstants.FLAG_IGNORE_GLOBAL_SETTING);
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
        view.startDragAndDrop(dragData, myShadow, null, 0);
    }else{
        view.startDrag(dragData, myShadow, null, 0);
    }
}
 
源代码3 项目: LaunchTime   文件: MainActivity.java
private void startDragCategory(View view, String category) {
    ClipData data = ClipData.newPlainText(category, category);
    View.DragShadowBuilder shadowBuilder = new View.DragShadowBuilder(view);
    //view.startDrag(data, shadowBuilder, view, 0);

    boolean dragstarted;
    if (Build.VERSION.SDK_INT>=24) {
        dragstarted = view.startDragAndDrop(data, shadowBuilder, view, 0);
    } else {
        dragstarted = view.startDrag(data, shadowBuilder, view, 0);
    }

    if (dragstarted) {
        mDragDropSource = mCategoriesLayout;
        if (!Categories.isSpeacialCategory(category)) {
            showRemoveDropzone();
        }
        showHiddenCategories();
    }
    cancelHide();
}
 
源代码4 项目: Passbook   文件: EditFragment.java
@Override
public boolean onLongClick(View v) {
    ClipData not_used_clip = ClipData.newPlainText("", "");
    if(Build.VERSION.SDK_INT < Build.VERSION_CODES.N) {
        v.startDrag(not_used_clip, new View.DragShadowBuilder(v), v, 0);
    }
    else {
        v.startDragAndDrop(not_used_clip, new View.DragShadowBuilder(v), v, 0);
    }
    mDragListener.startDrag(v);
    return true;
}
 
源代码5 项目: LaunchEnr   文件: AddItemActivity.java
@Override
public boolean onLongClick(View view) {
    // Find the position of the preview relative to the touch location.
    WidgetImageView img = mWidgetCell.getWidgetView();

    // If the ImageView doesn't have a drawable yet, the widget preview hasn't been loaded and
    // we abort the drag.
    if (img.getBitmap() == null) {
        return false;
    }

    Rect bounds = img.getBitmapBounds();
    bounds.offset(img.getLeft() - (int) mLastTouchPos.x, img.getTop() - (int) mLastTouchPos.y);

    // Start home and pass the draw request params
    PinItemDragListener listener = new PinItemDragListener(mRequest, bounds,
            img.getBitmap().getWidth(), img.getWidth());
    Intent homeIntent = new Intent(Intent.ACTION_MAIN)
            .addCategory(Intent.CATEGORY_HOME)
            .setPackage(getPackageName())
            .setFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
            .putExtra(PinItemDragListener.EXTRA_PIN_ITEM_DRAG_LISTENER, listener);

    if (!PreferencesState.isAllowRotationPrefEnabled(this) &&
            (getResources().getConfiguration().orientation ==
                    Configuration.ORIENTATION_LANDSCAPE && !isInMultiWindowMode())) {
        // If we are starting the drag in landscape even though home is locked in portrait,
        // restart the home activity to temporarily allow rotation.
        homeIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
    }

    startActivity(homeIntent,
            ActivityOptions.makeCustomAnimation(this, 0, android.R.anim.fade_out).toBundle());

    // Start a system drag and drop. We use a transparent bitmap as preview for system drag
    // as the preview is handled internally by launcher.
    ClipDescription description = new ClipDescription("", new String[]{listener.getMimeType()});
    ClipData data = new ClipData(description, new ClipData.Item(""));
    view.startDragAndDrop(data, new DragShadowBuilder(view) {

        @Override
        public void onDrawShadow(Canvas canvas) { }

        @Override
        public void onProvideShadowMetrics(Point outShadowSize, Point outShadowTouchPoint) {
            outShadowSize.set(SHADOW_SIZE, SHADOW_SIZE);
            outShadowTouchPoint.set(SHADOW_SIZE / 2, SHADOW_SIZE / 2);
        }
    }, null, View.DRAG_FLAG_GLOBAL);
    return false;
}
 
源代码6 项目: cronet   文件: ApiHelperForN.java
/** See {@link View#startDragAndDrop(ClipData, DragShadowBuilder, Object, int)}. */
public static boolean startDragAndDrop(View view, ClipData data,
        DragShadowBuilder shadowBuilder, Object myLocalState, int flags) {
    return view.startDragAndDrop(data, shadowBuilder, myLocalState, flags);
}
 
 方法所在类
 同类方法