Articles of 拖放

使用android中的矩阵缩放和拖动图像

我得到以下代码(来自Ed Burnette的Hello android)工作得很好,我能够拖动和缩放图像。 import android.app.Activity; import android.graphics.Matrix; import android.graphics.PointF; import android.os.Bundle; import android.util.FloatMath; import android.util.Log; import android.view.MotionEvent; import android.view.View; import android.view.View.OnTouchListener; import android.widget.ImageView; public class Touch extends Activity implements OnTouchListener { private static final String TAG = “Touch”; // These matrices will be used to move and zoom image Matrix matrix = new Matrix(); Matrix […]

如何将Drop Listview项拖到另一个Listview

嗨,我是Raynast我是Android编程的新手现在我的项目有一些关于Listview拖放的问题 我决定从数据库到三个Listview查询的布局 _________________________ |list_1 |list_2 |list_3 | |_______|_______|_______| |_______|_______|_______| || ||| ||| || ||item1|||item5|||item8|| ||_____|||_____|||_____|| |_______|_______|_______| || ||| ||| || ||item2|||item6|||item9|| ||_____|||_____|||_____|| |_______|_______| | || ||| || | ||item3|||item7|| | ||_____|||_____|| | |_______| | | || || | | ||item4|| | | ||_____|| | | |_______|_______|_______| 我使用android平台2.3.1 我想将item1从Listview1拖到liewview2或liewview3并在listviewitem之间删除 我尝试研究解决方案以解决这个问题,但我找不到! 观察: MotionEvent有action_up action_down没有action_right,左边 我想知道解决方案来解决这个问题如果不能告诉我或提出另一种方法来做这个活动请 预先感谢 您的回复对我和另一个回复非常有用

拖放RecyclerView是从SQLiteDatabase填充的

信息: 我有一个RecyclerView ,我用ListAdapter类中的ArrayList dataList填充它。 我从SQLiteDatabase表获取dataList的数据: DbHelper类中的DbHelper 。 我正在尝试使用SimpleItemTouchHelperCallback类实现拖放重组到RecyclerView ; 但是,虽然我现在能够移动RecyclerView元素,但列表不会重新排序或移动; 我只能暂时将列表元素相互拖动,如下图所示,但它意味着永久地将列表元素插入到它所持有的任何位置: 我希望问题出在ListAdapter类中,在方法onItemMove中,但我不知道如何解决我的问题。 问题:如何使此拖放function实际重新组织RecyclerView数据列表? 更新5:我已更新了当前的代码以获得进一步的帮助。 ListAdapter类 public class ListAdapter extends RecyclerView.Adapter { Context context; List dataList = new ArrayList(); LayoutInflater inflater; Listener listener; DbHelper dbHelper; public interface Listener { void nameToChnge(String name); } public ListAdapter(Context context, List dataList1) { this.context = context; this.dataList = dataList1; //this.listener= […]

不引人注目的popup窗口,不会阻止Android中的拖放

我一直在研究Android的启动器应用程序,类似于nova启动器。 我已经设置了OnItemLongClickListener和OnDragListener。 当我长按一个图标时,会popup一个菜单,其中包含“删除”,“更改图标”等菜单。下图显示了长按时打开popup窗口的应用程序的进度。 问题是当popup窗口打开时拖动工作但下降不起作用。 一旦popup窗口打开,我似乎无法记录x,y位置。 此外,当执行删除时,logcat中会显示以下消息。 I/ViewRootImpl: Reporting drop result: false 我的代码在OnDragListener中是这样的 public boolean onDrag(View v, DragEvent event) { int dragEvent = event.getAction(); switch (dragEvent) { case DragEvent.ACTION_DRAG_LOCATION: //Open popup here; note: its opened only once. popup.show(); //Log.i(“Position x : “, Float.toString(event.getX())); log x or y /*code to detect x any y change amount and […]

视图拖放更新时出现stackoverflow错误

我正在使用ondragListener进行视图拖动。 我的root是viewgroup ,在根目录中有更多的viewgroup容器,我在容器中添加了像imageview/textview这样的视图。 如果我使用像linearlayout这样的唯一容器( ViewGroup )来拖放它的工作正常但是如果我开始在这些容器中添加像imageview这样的视图并且仍然拖动点只是持有此视图的容器。 onActionDrop获取stackoverflow error : stack size 8MB 。 onActionDrop代码是: if (e.getAction()==DragEvent.ACTION_DROP) { final View view = (View) e.getLocalState(); final ViewGroup from = (ViewGroup) view.getParent(); from.removeView(view); final LinearLayout toView = (LinearLayout) v; toView.addView(view);} 错误日志: java.lang.StackOverflowError: stack size 8MB android.view.ViewGroup.resetResolvedLayoutDirection(ViewGroup.java:6546) android.os.TransactionTooLargeException: data parcel size 26840220 bytes android.os.BinderProxy.transactNative(Native Method) android.os.BinderProxy.transact(Binder.java:503) android.app.ActivityManagerProxy.handleApplicationCrash(ActivityManagerNative.java:4425) com.android.internal.os.RuntimeInit$UncaughtHandler.uncaughtException(RuntimeInit.java:90) java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:693) […]

android 3.x中的拖放导致拖动后的小数字后面的illegalStateException

在Android 3.x上有拖放机制的问题:在做了一些拖动(比如30次拖动)之后会产生exception(参见附件链接) https://groups.google.com/forum/#!msg/android-platform/2APvO248NNY/rKI-5dCT8XcJ (我在日志中收到与该post相同的内容..) android技术人员在那里回答它是API中的错误,并说避免问题的唯一方法是调用垃圾收集器。 我做的。 exception没有被抛出,但过了一段时间(比如更多30-40次拖动)android停止从某种原因调用drop事件。 我试图通过释放所有资源/canvas/绘图缓存/回收位图来“刷新”所有视图并重新创建它们并且它没有帮助(不再抛出exception – 但仍然有一些拖拽掉落事件’工作) “帮助”唯一的事情是关闭活动并重新启动它。 有人以某种方式解决了这个问题,或者有一个简单的替代方案??? (旁边实现我自己的拖放function..) 我想得到解决方案,不会强迫我重新启动或重新创建任何不想要的东西.. 这里是演示错误的示例代码 (没有演示我在使用System.GC后对drop事件的问题所说的部分): public class DragandDropExampleActivity extends Activity { private boolean mIsBeenDragged = false; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); final ImageView imageViewToDRag = (ImageView) findViewById(R.id.image_view_to_drag); imageViewToDRag.setClickable(true); imageViewToDRag.setOnTouchListener(new OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { if (event.getAction() […]

如何将Android拖阴影的“目标点”从其“触点”中移开?

我正在开发一个应用程序,可以更好地控制拖动对象的删除位置。 但是使用电容式触摸屏时,用户的手指总是会遮挡掉落目标。 Android允许通过覆盖View.DragShadowBuilder.onProvideShadowMetrics()方法来指定拖动阴影上的“触摸点”。 但似乎没有办法提供一个流离失所的“目标点”。 我想从拖影的触摸点投射一个箭头,可以更精确地操纵到投射目标。 问题:实现这一目标的最简单/最优雅的方法是什么? 我认为我可以在拖动操作期间在屏幕上放置一个不可见的图层,它记录触摸点的坐标,转换它们并将它们发送到实际的拖放目标 – 基本上重新实现拖动事件。 但我想知道是否有更简单的解决方案。 或者如果其他人之前做过类似的事情。 编辑:这是我想要的那种拖影的粗略模型:

android – 如何捕获与RecyclerView一起使用的ItemTouchHelper的Drop动作

我对RecyclerView的 ItemTouchHelper有问题。 我在做一个游戏。 游戏板实际上是RecyclerView。 RecyclerView具有一些跨度计数的GridLayoutManager 。 我想实现拖放 recyclerview的项目。 任何项目都可以拖动所有方向(向上,向下,向左,向右)。 private void initializeLayout() { recyclerView.setHasFixedSize(true); recyclerView.setLayoutFrozen(true); recyclerView.setNestedScrollingEnabled(false); // set layout manager GridLayoutManager layoutManager = new GridLayoutManager(getContext(), BOARD_SIZE, LinearLayoutManager.VERTICAL, true); recyclerView.setLayoutManager(layoutManager); // Extend the Callback class ItemTouchHelper.Callback itemTouchCallback = new ItemTouchHelper.Callback() { public boolean onMove(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, RecyclerView.ViewHolder target) { Log.w(TAG, “onMove”); return false; } @Override […]

Android中的Tinder appanimation(拖放视图或布局)

我想像拖放一样拖放像Tinder App这样的布局。怎么做? 请回复我。 解决了 步骤2.为MainActivity.java创建拖放视图的活动 package com.example.dragdropviewdemo; import android.annotation.SuppressLint; 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.LinearLayout.LayoutParams; import android.widget.RelativeLayout; public class MainActivity extends Activity { int windowwidth; int screenCenter; int x_cord, y_cord; int Likes = 0; RelativeLayout parentView; float alphaValue = 0; @SuppressWarnings(“deprecation”) @SuppressLint(“NewApi”) @Override public void […]

覆盖onTouchEvent与ScrollView竞争

从简单的概述我有一个自定义视图,其中包含用户可以拖动和resize的一些位图。 我这样做的方式是相当标准的,因为我在我的CustomView中覆盖onTouchEvent并检查用户是否在图像中触摸等。 当我想将这个CustomView放在ScrollView中时,我的问题出现了。 这可行,但ScrollView和CustomView似乎竞争MotionEvents,即当我尝试拖动图像时,它移动缓慢或视图滚动。 我想我可能需要扩展ScrollView,以便我可以覆盖onInterceptTouchEvent并让它知道用户是否在图像的范围内而不是尝试滚动。 但是,因为ScrollView在层次结构中更高,我将如何访问CustomView的当前状态? 有没有更好的办法?