我想通过从地图画布外部拖动标记图像在谷歌地图上创建标记并将其放入画布内,我已经注册了谷歌地图的dom事件监听器但是在监听器内我无法访问latLng对象,我该如何找到latpoint的滴点?
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<title>Active Users</title>
<link type="text/css" rel="stylesheet" href="style.css" />
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js" ></script>
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?libraries=maps&sensor=false"></script>
<script src="js/script.js"></script>
</head>
<body>
<div id="big_wrapper">
<div id="gmap_canvas" ondragover="allowDrop(event)"></div>
<div id="controls">
<div class="command">
Coordinates: <br />
<input type="text" id="lat" value="33.718629" /><br />
<input type="text" id="lng" value="73.059082" /><br />
<input type="button" value="Go" id="go" />
</div>
<div class="command">
Markers: <br />
<img src="img/marker.png" id="draggable" draggable="true" ondragstart="drag(event)" />
</div>
<div class="command" id="debug">
</div>
</div>
</div>
</body>
<html>
Run Code Online (Sandbox Code Playgroud)
这是我的javascript代码
var geocoder; …Run Code Online (Sandbox Code Playgroud) 我正在研究一个在相对布局中使用拖放视图的项目.我有一个按钮,单击时会生成一个新的图像视图.此图像视图在屏幕的左上角创建,相对于父视图为(0,0).然后我可以将图像视图拖放到我想要的任何地方.问题在于:当我再次单击该按钮以创建另一个图像视图时,所有图像视图都会移动到左上角.是否有一种不同的添加方法我应该使用或某种方式来保持其他图像视图到位?所有代码都发布在下面.
码:
MyFragment.java
package com.example.layouttest;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
public class MyFragment extends Fragment {
public static final String EXTRA_MESSAGE = "EXTRA_MESSAGE";
public String text;
static FragmentManager fragMan;
public static final MyFragment newInstance(String message)
{
MyFragment f = new MyFragment();
f.setRetainInstance(true);
Bundle bdl = new Bundle(1);
bdl.putString(EXTRA_MESSAGE, message);
f.setArguments(bdl);
return f;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
String message = getArguments().getString(EXTRA_MESSAGE);
View v = inflater.inflate(R.layout.myfragment_layout, …Run Code Online (Sandbox Code Playgroud) android drag-and-drop android-fragments android-relativelayout
我使用触摸界面使用如下的逻辑,所以我希望能够使用mousePressed启动拖动,但同时如果用户不拖动则能够使用mouseClicked或mouseReleased.
在mousePressed上,我有一个拖动正在启动.在mouseClicked上,我希望它打印出"mouseClicked",并打印mouseReleased on"mouseReleased"但由于某种原因
dropLabel.getTransferHandler().exportAsDrag(dropLabel, e,
TransferHandler.COPY);
Run Code Online (Sandbox Code Playgroud)
吞下事件导致mouseClicked和mouseReleased事件即使我不移动鼠标也不会被触发.请注意,注释掉该行会导致所有侦听器被触发(但显然不会启动拖动).
如何让所有鼠标事件按我想要的方式发生,特别是当用户没有进行任何拖动时,鼠标点击/鼠标释放,而如果用户拖动则仍然可以导出asDragged?任何黑客/裂缝/反射解决方案都是受欢迎的.
这是我正在使用的一些示例代码,它说明了我的实际问题:
import java.awt.Color;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;
import javax.swing.BorderFactory;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.TransferHandler;
public class DragTest extends JFrame implements MouseMotionListener,
MouseListener {
private JPanel leftPanel = new JPanel(null);
private JPanel rightPanel = new JPanel(null);
JLabel dropLabel;
public DragTest() {
this.setLayout(new GridLayout(1, 2));
leftPanel.setBorder(BorderFactory.createLineBorder(Color.black));
rightPanel.setBorder(BorderFactory.createLineBorder(Color.black));
this.add(leftPanel);
this.add(rightPanel);
leftPanel.addMouseListener(this);
leftPanel.addMouseMotionListener(this);
JTextArea area = new JTextArea();
rightPanel.setLayout(new GridLayout(1, 1));
rightPanel.add(area);
dropLabel = new …Run Code Online (Sandbox Code Playgroud) 我使用JQuery UI Sortable如下.HTML:
<ul id="sortable">
<li><div class="drag-handle">drag me</div>Item 1</li>
<li><div class="drag-handle">drag me</div>Item 2</li>
<li><div class="drag-handle">drag me</div>Item 3</li>
<li><div class="drag-handle">drag me</div>Item 4</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
使用Javascript:
$(function() {
$( "#sortable" ).sortable();
});
Run Code Online (Sandbox Code Playgroud)
CSS:
ul {
list-style: none;
}
ul li {
height: 90px;
width: 300px;
background-color: #eee;
border: 1px solid #aaa;
}
.drag-handle {
background-color: yellow;
width:80px;
height:40px;
}
Run Code Online (Sandbox Code Playgroud)
此时,整个<li>元素都是可拖动的.如何才能使div.drag-handle区域可拖动并具有相同的结果(即移动<li>元素?
感谢致敬.
我有这个使用服务激活的覆盖按钮.所以它是一个背景按钮.即使其他程序正在运行,您也可以看到该按钮.但是我在按钮上添加功能时遇到问题,当我按住它时,我可以将它拖到我想要的任何地方到屏幕上.我在这里检查了一些拖放选项,但我无法在我的程序中正确应用它.
在我的dragDrop()方法上,由于以下强制转换错误,它不起作用:
error(WindowManagerLayoutParams could not be cast on Freamelayout.LayoutParams)..
这是我的服务代码:
public class MainPowerAndVolumeService extends Service {
private ViewGroup mView;
private LayoutInflater inflater;
private ImageButton mainButton;
private Button testButton;
@Override
public IBinder
onBind(Intent intent) {
return null;
}
public void onCreate( ) {
super.onCreate();
/*This will make your window or layout to be overlay and of course you can click the buttons*/
WindowManager.LayoutParams params = new WindowManager.LayoutParams(
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.TYPE_PHONE,
WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH
| WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH
| WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,
PixelFormat.TRANSLUCENT
);
/*This will …Run Code Online (Sandbox Code Playgroud) 我在C#2008系统Windows窗体的LargeIcon视图中有一个ListView.现在我想在同一个ListView中移动一个ListView项目在另一个位置 - 让我们称它为"拖放"或"项目重新排序"或其他什么.VB 6能够做到这一点,并在任何listView中自动执行此操作.
C#似乎没有此功能,或者需要先编码.为了编码,我没有经验,我在互联网上的研究中找不到任何答案.我发现只有一个"覆盖程序"没有用.
我不需要任何其他ListView控件(如ObjectListView或其他),我不需要覆盖过程或制作新的ListView控件.我想在Microsoft提供的ListView控件中处理它.对此有任何想法.代码将受到高度赞赏我相信我不能自己做,除非它是一个非常简单的单行.
PS:如果需要移动项目,我需要移动项目的所有属性(文本,标签,图像键,背景颜色,前景色,名称,工具文本等).我不知道如何实现这一目标.我发现了一个提示:它存在删除一个项目(称为.Remove())并插入一个名为.Insert()的插入.但是有了这些信息,我仍然无法通过鼠标"移动"物品.我认为listView的所有DragEvents都在这里发挥作用,但我不知道如何使用它们以及如何将所选项目(listView1.SelectedItems)复制到正确的位置并且需要首先获得此位置.
最近,我解决了从JList到JTable对象的DnD项时遇到的“神秘” IOException。显然,我传输的对象必须可序列化。这是“必须”吗,还是有一种避免序列化的方法?
我必须注意的一件事-我要传输的类型在另一个程序包中。
我有2个jstrees,现在我正在尝试在它们之间实现拖放选项,但我似乎无法设法获取我正在拖动的元素的id或新的父级id(拖放后).到目前为止,这是我创建的代码,但在我提醒的数据中,没有id或任何其他信息可以帮助我.
$("#tree").jstree({
"dnd" : {
"drop_finish" : function(data) {
alert(data.toSource());
}
},
"plugins" : [ "themes", "html_data", "dnd", "ui", "types" ],
});
Run Code Online (Sandbox Code Playgroud)
我还创建了一个有2棵树的工作小提琴,几乎是我的所有代码.
如果有人能给我一个关于如何解决这个问题的提示或想法,我将非常感激.
我在C#中创建了一个拖放控件,允许人们将文件拖放到我的表单上.这是我遇到的问题,它在被调试时工作正常; 但是,当以管理员模式运行我的程序时,它不起作用.这有什么理由吗?
这是我的代码:
private void panel1_DragEnter(object sender, DragEventArgs e)
{
if (e.Data.GetDataPresent(DataFormats.FileDrop))
e.Effect = DragDropEffects.Copy;
else
e.Effect = DragDropEffects.None;
}
string startDir;
private void panel1_DragDrop(object sender, DragEventArgs e)
{
string[] files = (string[])e.Data.GetData(DataFormats.FileDrop);
dropZoneLabel.Text = "Adding files; please wait...";
foreach (string file in files)
{
bool isFolder = File.GetAttributes(file).HasFlag(FileAttributes.Directory);
if (isFolder)
{
//Scan the folder for all files
DirectoryOperations searchFolders = new DirectoryOperations();
DirectoryInfo di = new DirectoryInfo(file);
foreach (FileInfo dropfile in searchFolders.FullDirList(di, "*"))
{
listBox1.Items.Add(dropfile.Name);
}
startDir = di.FullName; …Run Code Online (Sandbox Code Playgroud) 在尝试使用setDragImage()方法时,我很难确定为什么Safari 6.0+会意外崩溃.
我有一个dragstart事件,我想在发生这种情况时附上背景图像.记录的方法是在事件连线上使用setDragImage()方法.这在Firefox和Chrome中运行得非常好.
我知道这是可能的,因为当我使用Safari浏览器运行这个网站时,拖动图像可以很好地工作.
然而,在我的简单例子中,它爆炸了.
HTML:
<div draggable='true' class='dragme'>
</div>
Run Code Online (Sandbox Code Playgroud)
JavaScript的:
var dragMe = document.querySelector('.dragme');
dragMe.addEventListener('dragstart', function(e)
{
e.dataTransfer.setData('Test', 'some data');
var img = document.createElement("img");
img.src = "http://kryogenix.org/images/hackergotchi-simpler.png";
e.dataTransfer.setDragImage(img, 0, 0);
}, false);
Run Code Online (Sandbox Code Playgroud)
CSS:
.dragme
{
border:1px solid red;
height:100px;
background-color:blue;
}
Run Code Online (Sandbox Code Playgroud) drag-and-drop ×10
javascript ×3
android ×2
c# ×2
java ×2
.net ×1
admin ×1
events ×1
google-maps ×1
imagebutton ×1
jquery ×1
jquery-ui ×1
jstree ×1
listview ×1
listviewitem ×1
mouseevent ×1
safari ×1
swing ×1
winforms ×1