如何去实现一个具有幻象的拖拽效果?
所谓”幻象“就是当你按下去拖动一个View时,View本身不动,拖动的是这个View的复制品,当抬起时真正的View才显示到拖动的地方。
复制品很容易解决,2句代码就可以了:
v.setDrawingCacheEnabled(true);
Bitmap bitmap = Bitmap.createBitmap(v.getDrawingCache());
package com.ql.app;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;
import android.widget.Button;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.FrameLayout.LayoutParams;
/**
* 参考:http://techdroid.kbeanie.com/2010/04/simple-drag-n-drop-on-android.html
* @author admin
*
*/
public class App extends Activity implements OnTouchListener{
private final static int START_DRAGGING = 0;
private final static int STOP_DRAGGING = 1;
private Button btn;
private FrameLayout layout;
private int status;
private LayoutParams params;
private ImageView image;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
layout = (FrameLayout) findViewById(R.id.layout);
// layout.setOnTouchListener(this);
btn = (Button) findViewById(R.id.btn);
btn.setDrawingCacheEnabled(true);
btn.setOnTouchListener(this);
params = new LayoutParams(LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT);
}
@Override
public boolean onTouch(View view, MotionEvent me) {
switch (me.getAction()) {
case MotionEvent.ACTION_DOWN:
status = START_DRAGGING;
image = new ImageView(this);
image.setImageBitmap(btn.getDrawingCache());
layout.addView(image, params);
break;
case MotionEvent.ACTION_MOVE:
if (status == START_DRAGGING) {
image.setPadding((int) me.getRawX(), (int) me.getRawY(), 0, 0);
image.invalidate();
}
break;
case MotionEvent.ACTION_UP:
status = STOP_DRAGGING;
Log.i("Drag", "Stopped Dragging");
// layout.removeView(image);
break;
default:
break;
}
return false;
}
}
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/layout"
>
<Button android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/btn"
android:text="Drag Me"
/>
</FrameLayout>
Android Drag and Drop
http://www.vogella.com/tutorials/AndroidDragAndDrop/article.html
分享到:
相关推荐
c# 拖拽效果 拖拽控件c# 拖拽效果 拖拽控件c# 拖拽效果 拖拽控件c# 拖拽效果 拖拽控件
简单的图片任意拖拽效果,任意拖拽到任意位置,代码简单 易懂
android拖拽 拖动 效果 仿zake 自动移位 优化性能版本
当点击鼠标选中一个区域后,可以拖动它所在的位置!
腾讯QQ有那种红点拖动效果,今天就来实现一个简单的自定义View拖动效果,再回到原处,并非完全仿QQ红点拖动
层的拖拽效果(带阴影效果),并具有保存拖拽路劲的功能!
Unity 从UI中拖拽对象放置并拖动效果
拖动翻页效果拖动翻页效果拖动翻页效果拖动翻页效果拖动翻页效果拖动翻页效果拖动翻页效果拖动翻页效果拖动翻页效果拖动翻页效果
实现类似与手机桌面图标的拖拽效果,暂时实现这点功能,以后在继续完善换页效果.rar,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。
js制作简单拖拽效果,简单实用,可直接使用。
拖拽效果JS网页特效
本文实例为大家分享了Qt自定义图形实现拖拽效果的具体代码,供大家参考,具体内容如下 在这里自定义图形是通过QPaintEvent事件绘画的图形,也可以通过自定义控件的方式添加到qt中。 首先定义类来自定义图形,这里...
Android按钮拖拽效果,GridView中的按钮的拖拽效果。
JQuery拖动效果,ajax拖动效果JQuery拖动效果,ajax拖动效果JQuery拖动效果,ajax拖动效果JQuery拖动效果,ajax拖动效果JQuery拖动效果,ajax拖动效果JQuery拖动效果,ajax拖动效果
页面 JS 进行拖拽效果 .NET 可以用哦。。。。 Index.aspx 页面 和 那个 HTML 页面都是
css + javascript实现的层拖拽效果 (适合初学css的朋友)
js窗口拖动效果,兼容ie7以上,火狐,谷歌等
C# 测试文件,实现简单拖拽功能,采用微软Surface2.0开发包。
gridview拖拽并且可以删除 带动画效果 有图有真相 http://blog.csdn.net/liudao7994/article/details/49780549
jQueryUI拖拽效果_拖拽div的值到table表格里面,jQueryUI拖拽效果_拖拽div的值到table表格里面(html)